- - PR -
MaskedTextBoxについて(VB2005)
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-07-13 14:35
こんにちは。
VB2005のMaskedTextBoxについてお聞きしたいことがあります。 入力で、数字とピリオドのみ入力可にすることはできないでしょうか。 入力例でいうと、 1.3.6.10や、 1.4.8.15.18.20 のように入れれるようにしたいです。 よろしくお願いします。 | ||||||||
|
投稿日時: 2007-07-13 16:22
KeyPressイベントの中で、数字、ピリオド、BackSpaceだけどフックして、
それ以外は、強制的に e.Handle = True としてしまえばよいかと。 該当のMaskedTextBoxを使いまわすなら、継承先に処理を埋め込んだ方がいいですね。 | ||||||||
|
投稿日時: 2007-07-13 16:41
そしてペーストで全角文字とか入れられてしまって、入力値を信用して登 録してるもんだから変なデータが入って後から慌てる罠。 やるなら継承したコントロールの WndProc プロシージャでやるのが一般 的かもしれないですね。 MaskEdit だと、ちょっと用途と合わないかもしれないです。 ということでじゃんぬねっとさんのところの参考資料をどうぞ。 http://jeanne.wankuma.com/tips/textbox/permitchars.html # 以前自分も似たようなの作ってました この辺とかを読んでみるといいかもです。 > だからといって 入力チェックをしなくても良いわけではない です。 > そういう意味でも、「最終チェックに一任する」という選択肢があることも忘れないでください。 _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||||||
|
投稿日時: 2007-07-13 16:51
おっ。。確かにそうでした。 自分なら、PasteだけをWndProc でフックするかなぁ。。 | ||||||||
|
投稿日時: 2007-07-13 16:52
ありがとうございます。
>ということでじゃんぬねっとさんのところの参考資料をどうぞ。 >http://jeanne.wankuma.com/tips/textbox/permitchars.html まさに探していたもののサンプルです。 このサンプルの中で、 Me.MyTextBox1.PermitChars = New Char() {"0"c, "1"c, "2"c, "3"c, "4"c, "5"c}; といのがあるのですが、 この"0"cのcとは何を意味する構文なのでしょうか。 おっしゃるとおり、 MaskTextBoxは、日付や郵便番号といったものの入力には向いてますが、 私の用途では、向いていないですね。 | ||||||||
|
投稿日時: 2007-07-13 18:14
新規FormにTextBoxと上記コーディングを貼り、cを除外してみれば判るんじゃないかな。 | ||||||||
|
投稿日時: 2007-07-13 18:14
ご存知だとは思いますが、それでも安全とは言えないです。
System.Char 型を表します。 この場合ですと Char の定数ですね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-07-13 18:18
あ、まるくさん。 邪魔なマネをしてしまいました。 すみません。
MaskedTextBox コントロールは定型入力を支援するものですが、入力制限に関してはそこまで融通が利かないかもしれませんね。 InputMan など専用のコントロールの利用が望ましいとは思いますが、キーが効かないことが必ずしもユーザーに配慮した対策ではないという可能性も考えた方が良いかもしれません。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |