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 注册表中如何获取我在代码中右键单击的文件?
C# 两个checkBox控件与richTextBox,实现多选