C# 在 RichTextBox 中右键单击移动光标

Posted

技术标签:

【中文标题】C# 在 RichTextBox 中右键单击移动光标【英文标题】:C# Moving Cursor in RichTextBox on Right-Click 【发布时间】:2011-03-01 02:41:27 【问题描述】:

我有一个 RichTextBox 控件。当您在文本中左键单击时,光标会跳到您单击的位置。我也希望在我右键单击时发生这种情况。我不知道该怎么做。谢谢!

【问题讨论】:

【参考方案1】:

假设winforms:

像这样实现一个 MouseUp 事件处理程序:

private void richTextBox1_MouseUp(object sender, MouseEventArgs e)

    if (e.Button == MouseButtons.Right)
    
        RichTextBox box = (RichTextBox)sender;
        box.SelectionStart = box.GetCharIndexFromPosition(e.Location);
        box.SelectionLength = 0;
    

【讨论】:

很好的答案,但我会建议一个小的改进。如果右键单击活动选择本身,则 Windows 应用程序不替换右键单击时的活动选择是标准做法。您的代码可以通过在设置选择之前检查 GetCharIndexFromPosition 是否返回 SelectionStart 和 SelectionStart + SelectionLength 之外的索引来完成此操作。

以上是关于C# 在 RichTextBox 中右键单击移动光标的主要内容,如果未能解决你的问题,请参考以下文章

我将我的 C# 程序添加到 Windows 注册表中如何获取我在代码中右键单击的文件?

仅允许在 ListBox 中右键单击来选择项目

在 C# 中的 RichTextBox 中清除文本

C# 两个checkBox控件与richTextBox,实现多选

在守夜人中右键单击不起作用 .mouseButtonClick('right')

如何获取在 NSOutlineView 的上下文菜单中右键单击的元素?