1

ユーザーがキャレットの行を変更したときにコードを実行するにはどうすればよいですか?

次のようなもの:

sub textbox1_lineindexchanged (byval ....) Handles Textbox1.Lineindexchanged
  'do code based on the current line
end sub

申し訳ありませんが、リッチテキストボックスを使用しています。いつも使用していたので、単にテキストボックスと呼んでいます。

4

3 に答える 3

0

TextBoxバニラWinFormsインスタンスでこれを行う方法はありません。カレットに関する情報は公開されません。これを行う唯一の方法は、サブクラス化してTextBoxWndProcをオーバーライドし、特にキャレットの動きに関するメッセージを処理することです(そのようなメッセージが存在する場合)。

ここでどのような行動をとろうとしていますか?これを達成する別の方法があるかもしれません。

于 2010-02-07T20:19:41.633 に答える
0

あなたはWindowsフォームを使用していると思いますので、私の答えはそれに基づいています。ASP.NETを使用している場合は、JavaScriptを使用する必要がありますが、それがどのように/可能かどうかはわかりません。

Windowsフォームでは、KeyUpイベントとMouseUpイベントのイベントハンドラーを作成できますが、SelectionChangedイベントはありません。代わりにRichTextBoxの使用に切り替えると、SelectionChangedイベントにアクセスできます。

テキストボックスのSelectionStartプロパティを使用して、それをGetLineFromCharIndexメソッドに渡す場合は、行番号が表示されます。お役に立てれば。

于 2010-02-07T20:21:42.613 に答える
0

、、およびハンドラSelectionStartからプロパティをチェックするよりもエレガントなものがあるとは思えません。KeyPressClickTextChanged

于 2010-02-07T20:23:15.507 に答える