0

私が取り組んでいるエディタに似たようなインテリセンスを作ろうとしています。ユーザーがリッチテキスト ボックスに入力し、文字が単語と一致すると、リストビューがポップアップ表示され、一致した単語が選択されます。

問題は、フォーカスがまだリッチテキストボックスにあるため、すべてのキーを押すとそのコントロールに移動することです。これは良いことですが、一致する場合は、リッチテキストボックスではなくリストビューでトリガーするために Return キーと矢印キーが必要です。

リッチテキストボックスのキープレスイベントを使用してそれらのキーをリストビューに送信する方法はありますか?

ありがとう

4

2 に答える 2

3

scintillaを使用する方が簡単ではないでしょうか? .NET ラッパーはここにあります。

編集:誰かがこれを行ったようです。あなたが達成しようとしていることで、それに関する記事はCodeProjectにあります。

于 2010-01-21T23:47:21.123 に答える
1

リッチテキストボックスにフォーカスが残っているのは良いことだと思います。

そのリストビューをサブクラス化して、 、 、 などのメソッドを追加するのはvoid SelectNext()どうvoid SelectPrevious()ですかstring PerformCompletion()。リッチテキスト ボックスのマウス イベントのみを処理します。テキストボックスが表示されていて、ユーザーが下矢印を押したSelectNext()場合は、キープレスを呼び出して飲み込みますが、表示されていない場合は、次の行に移動します (キープレスを通過させます)。

リストビューが表示されていて、ユーザーが Enter または Tab または を押した場合。または何でも、選択した文字列を取得するために呼び出しPerformCompletion()てから、まだ入力されていない文字を追加します。

于 2010-01-25T23:03:13.957 に答える