C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: Windowsフォーム上TextBoxでの選択範囲変更の検知


(過去ログ 118 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■69423 / inTopicNo.1)  Windowsフォーム上TextBoxでの選択範囲変更の検知
  
□投稿者/ Ellen (1回)-(2013/12/26(Thu) 01:52:16)

分類:[C#] 

#分類を「C#」としましたが、.NET Frameworkの問題です

C#(Visual Studio 2012)を使って、Windowsデスクトップアプリケーションの開発をしています。
(.NET Framework 3.5を使用しています)

いわゆるTextBoxコントロール(System.Windows.Controls.TextBox)なのですが、選択範囲の変更をイベントで受け取る方法はないでしょうか。
SilverLight等の類似クラスだとSelectionChangedイベントがあるのですが、どうも標準のTextBoxコントロールには見当たらず。

最終的にはウィンドウメッセージを見るしかないかなと思っていますが、如何せん「.NET的な方法ではない」ので、可能ならフレームワークの範囲でできる方法を採りたいと考え、ご質問させていただきます。
どなたか良い方法をご存じの方、いらっしゃいませんか?
引用返信 編集キー/
■69424 / inTopicNo.2)  Re[1]: Windowsフォーム上TextBoxでの選択範囲変更の検知
□投稿者/ 魔界の仮面弁士 (475回)-(2013/12/26(Thu) 02:29:51)
No69423 (Ellen さん) に返信
> 選択範囲の変更をイベントで受け取る方法はないでしょうか。
System.Windows.Forms.RichTextBox に変更するのが、
もっとも手っ取り早いと思います。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.richtextbox.selectionchanged.aspx


> 最終的にはウィンドウメッセージを見るしかないかなと思っていますが、
具体的には、どのメッセージを調べようとされていますか?

キー操作やマウス操作以外で選択されることもある以上、標準TextBoxで
実現するなら、Timer で定期監視するといった手法になりそうな気がします。

RichEditBox であれば、EN_SELCHANGE メッセージが通知されますが、
http://msdn.microsoft.com/en-us/library/windows/desktop/ff486016.aspx
EditBox にはそもそも該当メッセージがありませんし…。
http://msdn.microsoft.com/en-us/library/windows/desktop/ff485924.aspx
引用返信 編集キー/
■69425 / inTopicNo.3)  Re[2]: Windowsフォーム上TextBoxでの選択範囲変更の検知
□投稿者/ Ellen (2回)-(2013/12/26(Thu) 02:50:39)
魔界の仮面弁士さん

ありがとうございます。
やや扱う文字列が長い(ログの閲覧が主)なので、できるだけ軽いTextBoxを、と考えていたのですが……やはり機能にかなり制限があるようですね。
ウィンドウメッセージを拾うにしても結局はRichTextBoxになるのは考えていませんでした。

取り急ぎ、Timerで監視することを考えてみます。
重ね重ね、ありがとうございました。

No69424 (魔界の仮面弁士 さん) に返信
> ■No69423 (Ellen さん) に返信
>>選択範囲の変更をイベントで受け取る方法はないでしょうか。
> System.Windows.Forms.RichTextBox に変更するのが、
> もっとも手っ取り早いと思います。
> http://msdn.microsoft.com/ja-jp/library/system.windows.forms.richtextbox.selectionchanged.aspx
>
>
>>最終的にはウィンドウメッセージを見るしかないかなと思っていますが、
> 具体的には、どのメッセージを調べようとされていますか?
>
> キー操作やマウス操作以外で選択されることもある以上、標準TextBoxで
> 実現するなら、Timer で定期監視するといった手法になりそうな気がします。
>
> RichEditBox であれば、EN_SELCHANGE メッセージが通知されますが、
> http://msdn.microsoft.com/en-us/library/windows/desktop/ff486016.aspx
> EditBox にはそもそも該当メッセージがありませんし…。
> http://msdn.microsoft.com/en-us/library/windows/desktop/ff485924.aspx
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -