• ベストアンサー

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

  • EXCEL VBA コントロールのコピー&ペースト

    いつも活用させて頂いております。 excelのvbaで、コピー元のセルを範囲指定して、ペーストするロジックを書いています。 コピー元のセルには、コントロール(テキストボックスなど)が配置されているのですが、これを一緒にコピー&ペーストする事はできないでしょうか? 一緒にできないのであれば、セルのコピー&ペーストのあとにコントロールのコピー&ペーストができるような方法があれば、ご教授願います。 よろしくお願い致します。

  • 業務アプリによるユーザーコントロールの作成について

    業務アプリによるユーザーコントロールの作成について 業務アプリケーションの開発を 行おうとしています VB.net2010 システムはよくある 検索、結果一覧、参照、登録、などを実装予定です 開発前にまずVB.net標準のコントロールを継承カスタマイズし ユーザーコントロールを作成しようと考えています [質問] 一般的に独自のユーザーコントロールを作成するにあたり どのようなユーザーコントロールを用意するものでしょうか 主となる継承対象のコントロールは下記となります ・テキストボックス ・コンボボックス ・ラジオボタン ・チェックボックス ・データグリッドビュー 例)フォームに使用頻度の高いコントロールを配置し部品化する 例)テキストボックスに特殊文字しか入力できないような部品を用意する など箇条書き程度でもかまいませんのでお聞かせ願えると助かります ザックリとした質問で申し訳しないませんが 皆さんならどのようなコントロールを作るのか 今後の参考にさせて頂ければ幸いです よろしくお願いします。

  • HT-03Aでコピー&ペースト

    HT-03Aでコピー&ペーストをしたいのですが、 (テキストエディター上の文字列をブラウザに貼り付けるとか・・・) 可能でしょうか?

  • コピー&ペーストを行ったとき最初の"が消えないようにしたい。

    Excelにテキストの内容をコピー&ペーストしたとき最初の"という文字が必ず消えてしまいます。 書式設定を文字列に設定しても消えてしまいました。 ほかにどこの設定を変更すれば分からないので、分かる方いらっしゃいましたら、お願いします。

  • ユーザコントロールのイベント取得について(C#)

    環境:Visual Studio 2005 C# Windows Application フォームに自作のユーザコントロールを貼り付けてそのイベントを取得する勉強をしているものです。 フォームでのユーザコントロールイベントを取得して処理をする方法が分かりません。 状況 ユーザコントロールにはテキストボックスを追加しています。 また、フォームにそのユーザコントロールを追加しています。 確認したいことは、ユーザコントロールのテキストボックスになにか値を入力したタイミングでチェンジイベントをフォーム側で察知し、処理をするというものです。 どなたか、要点だけでもいいので教えていただけないでしょうか? 宜しくお願いいたします。

  • TextBoxの場合だけ処理したい

    VB2005でフォームの中のテキストボックスの中身をすべて""(空白文字列)にしたいと思っています。 VB6の時には、以下のコードでテキストボックスの中身を""にしていたのですが、VB2005になってから、captionプロパティがなくなって、この方法ではラベルやボタンまで""になってしまいます。 Dim TextBoxControl As Control On Error Resume Next For Each TextBoxControl In Me.Controls TextBoxControl.Text = "" Next 要するにこのコードの中にifでTextBoxの場合のみ処理するように書けばいいと思うのですが、その方法が見つかりません。if ~ thenの間に書く式を教えていただきたいと思います。

  • vb2008 コントロール配列

    VB6からVB2008へ移行を検討しているものです。 そこで質問なんですが、VB2008でコントロールの反復処理はどう処理すればいいのでしょうか? VB6の時はコントロール配列を使用して、ForNextで繰り返せばそれらしいことはできました。VB2008はコントロール配列がサポートされていないのでどうすればいいかわかりません。みなさんはどう反復処理を行っているのか教えていただきたいと思います。 具体的な処理として、テキストボックス1~10があり、そのテキストボックスの内容を1~10の順番で、テキストボックス11~20に格納する。以上、宜しくお願いします。

  • エクセルのユーザーフォームについての質問です。

    エクセルのユーザーフォームについての質問です。 かなりの初心者です。 テキストボックスを3つ、チェックボックスを10個作りました。 チェックボックスは複数チェックすることができます。 コマンドボタンをクリックすると、テキストボックスに入力された値とチェックされた チェックボックスがsheet1に自動入力できるようにしたいです。 たとえば、 テキストボックス1には「あいう」 テキストボックス2には「かきく」 テキストボックス3には「さしす」と入力。 チェックボックス1から10のうち、「1」「2」「3」にチェック。 この状態でコマンドボタンをクリックすると、Sheet1には     A列       B列       C列        D列 1行目 テキスト1    テキスト2    テキスト3     チェックボックス 2行目 あいう      かきく      さしす       1 3行目 あいう      かきく      さしす       2 4行目 あいう      かきく      さしす       3 このように、チェックボックスにチェックがあった数だけ、テキストボックスも コピーされて、次々と下の行に入って行くようにしたいのです。 こんなことができるのでしょうか? できるのなら、コードを教えてください。 お願いします。

  • vb2003 datagridにコントロールを追加するには

    vb2003でdatagridにチェックボックス、リストボックス、 テキストボックスを追加したいです。 datasetを作成し、ヘッダ、列、行の追加まではできましたが、 そこへ各列にコントロールの追加をしたいです。 チェックボックスはdatasetでboolean型にすると 自動でチェックボックスになると聞いたのですが、なりません。 コントロールの追加の仕方を教えてください。

  • 1行テキストでコピーペーストしたい

    お世話になります。 ビルダー8を使用しています。 フォームメールでURLの入力欄を1行テキストで作成しました。 実際に動かしてみると、1行テキストボックス内でコピー・ペーストができません。 URL欄に自分で全部入力させるのはちょっとと思います。ペーストができるようになる方法をお教えください。

専門家に質問してみよう