2

textBox 内の単語を検索して強調表示することになっているToolStripMenuItemを持つ WFA を使用しています。これがハイライトコードです。

first = ハイライトされる最初のインデックス、length = ハイライトされる文字数。

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

すべてがうまくいっているようです。ただし、マウス カーソルが textBox2 内にない場合 (たとえば、別の textBox 内)。ハイライトが効かない。マウスカーソルの位置に関係なく動作させる方法はありますか? つまり、 ToolStripMenuItemを押す前にマウスカーソルが textBox2 内になかったとしても、 textBox2 内のテキストを強調表示するようにコードを変更する方法はありますか?

PS私はVS 2010でc#を使用していることに言及する価値があります

4

2 に答える 2

2

試す:

textBox2.Focus();

テキストを強調表示するコードを実行する前に。これにより、入力フォーカス(およびカーソル)がテキストボックスに移動します

于 2012-10-15T14:46:04.220 に答える
0

richtextbox を使用して、テキストの背景色を変更するだけです。このようにして、一度に複数のハイライトを使用でき、ユーザーがマウスクリックでテキストボックスにフォーカスした後、ハイライトが失われることはありません。さらに、すべての位置を保存し、ユーザーが強調表示された領域をクリックすると、テキスト部分を自動的に選択することができます。

you can also show the selection like LarsTech mentioned, but after the user clicks inside the textbox the selection will get lost.

于 2012-10-15T14:48:32.183 に答える