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

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

【问题讨论】:

    标签: c# richtextbox cursor-position


    【解决方案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 之外的索引来完成此操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    相关资源
    最近更新 更多