当表单未聚焦时,RichTextBox超链接不会引发单击的事件

时间:2016-11-02 04:53:42

标签: .net winforms richtextbox

当表单未聚焦时,单击表单上RichTextBox内的超链接不会引发单击的事件。我必须点击两次。这是设计的吗?如果是bug,最优雅的解决方案是什么?我想通过单击来提升点击的事件,无论表单是否聚焦。

3 个答案:

答案 0 :(得分:0)

只需使用

Mouse_Enter
form1.getfocus

我确定你知道鼠标进入事件所以是的,做那样的事情应该有用......

答案 1 :(得分:0)

您必须点击两次,因为表单不在焦点;第一次单击会使表单处于焦点,第二次触发LinkClicked控件的RichTextBox事件。

一旦鼠标光标位于其边界内,您可以将表单设置为焦点。将以下代码添加到窗体的构造函数:

MouseEnter += (s, e) => Focus();

然后在表单处于焦点时单击超链接,并根据需要从第一次单击触发LinkClicked事件。

答案 2 :(得分:0)

因此,您可以使用Richtextbox的鼠标悬停事件。像这样,

private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e)
        {
            MessageBox.Show(e.LinkText);
        }

private void richTextBox1_MouseHover(object sender, EventArgs e)
        {
            this.Focus();
        }

结果(我将表单的TopMost属性设置为true以显示焦点或不清楚。您可以从表单的标题中进行跟踪),

enter image description here

希望有所帮助,