じゃんぬねっと日誌

ネタと雑記と時々プログラミング

目次

Blog 利用状況

ニュース

不況すぎる件。

スポンサードリンク

運営サイト

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

書庫

ComboBox で WM_PASTE を捕捉

TextBox 以外のコントロールでは、WndProc で貼り付けを示す WM_PASTE、
またはコピーを示す WM_COPY などは取得できなかったりします。

たとえば、ComboBox がそのうちのひとつです。
実際には、ComboBox 内の EditBox で起きています。

コンボ ボックスの右クリックの貼り付けイベント取得について
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28307&forum=7

スレッド タイトルは「右クリックの貼り付け」とありますが、
実際には、コンテキスト メニューだけでなく、[Ctrl] + [C] や [Ctrl] + [Insert] にも対応します。
コンテキスト メニューだけ防ぐのは、おかしいですから言わずもがなですけどね。(;^ω^)

ただ、ユーザーのしたいことを奪うような利用は控えた方が良いでしょう。
特にですが「貼り付けを完全に禁ずる」というものには、宜しくないでしょう。(;_ _)

やるのであれば、WM_PASTE を捕捉して「数字のみ貼り付けを許可する」などですね。
これは、クリップ ボードからデータを取得して、許可する文字だけを自前で貼り付けることで簡単に可能です。

TextBox などの場合は WndProc で直接あれこれできますが、
どちらにしても、どの文字を許可するのかなどはプロパティで実装すべきでしょう。

私のサイト内の ExTextBox はプロパティで実装していますが、結構イケてないです。
なにぶん、.NET をやり始めた頃に工数短縮のために作ったものですからね... < ただの言い訳w

投稿日時 : 2006年2月11日 9:45

コメントを追加

No comments posted yet.
タイトル  
名前  
URL
コメント