2

我正在使用具有ToolStripMenuItem的 WFA,它应该在文本框中搜索单词并突出显示它。这是高亮代码。

first = 要突出显示的第一个索引,长度 = 要突出显示的字符数。

            textBox2.SelectionStart = first;
            textBox2.SelectionLength = length;
            //scroll to the caret
            textBox2.ScrollToCaret();

一切似乎都运行良好。但是,如果鼠标光标不在 textBox2 内(比如在另一个 textBox 中)。突出显示不起作用。无论鼠标光标的位置如何,有没有办法让它工作?换句话说,有没有办法更改我的代码以使其突出显示 textBox2 中的文本,即使在点击ToolStripMenuItem之前鼠标光标不在 textBox2 内?

PS值得一提的是我在VS 2010中使用的是c#

4

2 回答 2

2

尝试:

textBox2.Focus();

在运行突出显示文本的代码之前。这会将输入焦点(和您的光标)移动到文本框

于 2012-10-15T14:46:04.220 回答
0

只需使用richtextbox 并更改文本的背景色。这样,您可以一次使用多个高亮,并且在用户通过鼠标单击聚焦文本框后,高亮不会丢失。此外,如果用户单击突出显示的区域,您可以保存所有位置并自动选择文本部分。

您也可以像 LarsTech 提到的那样显示选择,但是在用户在文本框内单击后,选择将丢失。

于 2012-10-15T14:48:32.183 回答