ユーザーがキャレットの行を変更したときにコードを実行するにはどうすればよいですか?
次のようなもの:
sub textbox1_lineindexchanged (byval ....) Handles Textbox1.Lineindexchanged
'do code based on the current line
end sub
申し訳ありませんが、リッチテキストボックスを使用しています。いつも使用していたので、単にテキストボックスと呼んでいます。
TextBox
バニラWinFormsインスタンスでこれを行う方法はありません。カレットに関する情報は公開されません。これを行う唯一の方法は、サブクラス化してTextBox
WndProcをオーバーライドし、特にキャレットの動きに関するメッセージを処理することです(そのようなメッセージが存在する場合)。
ここでどのような行動をとろうとしていますか?これを達成する別の方法があるかもしれません。
あなたはWindowsフォームを使用していると思いますので、私の答えはそれに基づいています。ASP.NETを使用している場合は、JavaScriptを使用する必要がありますが、それがどのように/可能かどうかはわかりません。
Windowsフォームでは、KeyUpイベントとMouseUpイベントのイベントハンドラーを作成できますが、SelectionChangedイベントはありません。代わりにRichTextBoxの使用に切り替えると、SelectionChangedイベントにアクセスできます。
テキストボックスのSelectionStartプロパティを使用して、それをGetLineFromCharIndexメソッドに渡す場合は、行番号が表示されます。お役に立てれば。
、、およびハンドラSelectionStart
からプロパティをチェックするよりもエレガントなものがあるとは思えません。KeyPress
Click
TextChanged