当窗体没有焦点时,RichTextBox不会在鼠标按下时开始选择

Wal*_*hop 5 .net c# richtextbox selection winforms

我正在使用WinForms,在我的窗体上有一个RichTextBox。当我的表单失去焦点但可见时,并且我尝试突出显示/选择文本时,直到表单或文本框本身具有焦点时,它才允许我这样做。

我试过了:

txtInput.MouseDown += (s, e) => { txtInput.Focus(); }
Run Code Online (Sandbox Code Playgroud)

但无济于事,我似乎找不到关于此问题的任何在线信息。

使用记事本之类的其他程序进行测试时,它确实具有所需的行为。

TaW*_*TaW 3

MouseDown为时已晚。

这肯定是一个解决方法,但可能就是您所需要的:

private void txtInput_MouseMove(object sender, MouseEventArgs e)
{
    txtInput.Focus();
}
Run Code Online (Sandbox Code Playgroud)

或者当然:

txtInput.MouseMove += (s, e) => { txtInput.Focus(); }
Run Code Online (Sandbox Code Playgroud)

事实上,当您在文本框上移动时,它可能会窃取表单上其他控件的焦点。如果这是一个问题,您可以通过使用此处的答案之一检查您的程序是否处于活动状态来防止它发生。