DOBON.NET DOBON.NETプログラミング掲示板過去ログ

テキストボックスの文字種制限について

環境/言語:[WindowsXP Oracle C#]
分類:[.NET]

VisualStudio.Netの標準コントロールの中のTextBoxでは
文字種の制限を行うことは出来ないと思うのですが、
この機能を手っ取り早く実装するにはやはり
GrapecityのImput Manを採用するほかには方法は無いでしょうか?
このような機能を実装されている方のご意見をお聞きしたいと思いまして
書き込みしました。
ご教授お願いいたします。
■No3939に返信(gorisakuさんの記事)
> VisualStudio.Netの標準コントロールの中のTextBoxでは
> 文字種の制限を行うことは出来ないと思うのですが、
> この機能を手っ取り早く実装するにはやはり
> GrapecityのImput Manを採用するほかには方法は無いでしょうか?
> このような機能を実装されている方のご意見をお聞きしたいと思いまして
> 書き込みしました。
> ご教授お願いいたします。
TextChangedイベントごとにチェックして、不正を調べるのが一番いい方法でしょう。
gorisaku さん、こんにちは。
どのように、文字種の制限を行いたいのかは解りませんが、
KeyPressイベントで制限すればいいのでは。

参考までに、0〜9以外の数値以外の入力を受け付けないサンプルです。


Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If Not IsNumeric(TextBox1.Text) Then
TextBox1.Text = Nothing
End If
End Sub

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Select Case e.KeyChar
Case "-"
e.Handled = True
Case "."
e.Handled = True
Case "0"c To "9"c
Case ControlChars.Back
Case Else
e.Handled = True
End Select
End Sub

DOBON.NET | プログラミング道 | プログラミング掲示板