• ベストアンサー

textboxユーザーコントロールのコピー&ペースト制御

VB.NETにてテキストボックスタイプのユーザーコントロールを作成中なのですが、 任意の場所からコピーしてきた文字列をテキストボックスにペーストする際、コピーした文字列のチェック行い、 入力制限したい文字が存在する場合、ペーストさせないような処理にしたいのですが、 良い方法は無いでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • JeanneNet
  • ベストアンサー率48% (100/208)
回答No.2

こんにちは、じゃんぬねっと です。 全部解説するのは骨が折れますので、 Public Class ExTextBox   Inherits System.Windows.Forms.Form   Protected Overrides Sub WndProc(ByRef m As Message)     Const WM_PASTE As Integer = &H302     Select Case m.Msg       Case WM_PASTE             '/ ここでクリップボードを読む         '/ ここで許可しない文字を削除した文字列を作る         '/ ここで貼り付ける     End Select     MyBase.WndProc(m)   End Sub End Class クリップボード関連は Google などで調べるとすぐ見つかります。

その他の回答 (1)

  • JeanneNet
  • ベストアンサー率48% (100/208)
回答No.1

こんにちは、じゃんぬねっと です。 TextBox を継承した自作の TextBox にて、 WndProc をオーバーライドし、WM_PASTE を捕捉します。 その時に、Clipboard から Text を取得し、 貼り付けたくない文字を排除した状態で自前でペーストすれば OK です。 これならば、コンテキスト メニューからの貼り付け、 [Ctrl] + [Insert], [Ctrl] + [P] すべて防げます。 # 作ったことがあります。

kanamora
質問者

補足

じゃんぬねっとさん回答ありがとうございます。 もしよろしければ、具体的にどのような記述をすればいいか教えていただけないでしょうか?

関連するQ&A