- ベストアンサー
TextBoxに半角数字のみの入力しかできないようにしたい
タイトルどおりです。 フォームに貼り付けた、TextBoxに、半角数字のみしか入力できないようにしたいです。 000000~999999までのコード(数字)を入力させるようにするわけですが、そのままだと半角英数も全角も入力できてしまいます。 GrapeCity社製のカスタムコントロール「InputMan」の“Number”を用いると簡単なのですが、これだとカーソルがボックス内の右端にきて、一の位から入力が始まってしまいます。 数字は、ボックス内の左側から入力されていくようにしたいのですが、“Number”だとなんか出来なさそう・・・? (“Number”で左側から入力できるならそれがいいのですが) そこで、TextBoxを使うことにしたのですが、TextBoxだと、半角数字のみしか入力できないような制限がかけるのかが、わかりません。 もし、お分かりの方がいらっしゃいましたら、ご教授下さいませ。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
コピペですみません。 VB6だと、 Private Sub TextBox_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case vbKeyBack, Asc("0") To Asc("9"), Asc("-"), Asc(".") Case &H1 ' Ctrl + A TextBox.SelStart = 0 TextBox.SelLength = Len(TextBox.Text) Case &H3 ' Ctrl + C Case &H16 ' Ctrl + V Case &H18 ' Ctrl + X Case &H1A ' Ctrl + Z Case Else KeyAscii = 0 End Select End Sub で、いかがでしょうか。
その他の回答 (1)
- JeanneNet
- ベストアンサー率48% (100/208)
こんにちは、じゃんぬねっと です。 まずは、検索するクセをつけましょう。 http://dobon.net/vb/dotnet/control/numerictextbox.html コンテキストメニューからのペースト、Ctrl + C などのショートカットによるペーストも防ぐ必要があれば防ぎましょう。 面倒なので、私はカスタムコントロールを作りましたが。
お礼
検索しまくっていたのですが、見つけ出すことができずに、こちらへ質問しました。 その後、そのサイトで発見しましたので解決に至りました。 わざわざ、ありがとうございました。
お礼
早速のご回答ありがとうございます。 環境は、VB.NETですが、参考にして、ちょっと書き直してやってみようと思います。
補足
お礼後の書込みです。 以下のコードで実現できました。 半ば自己解決となりましたが、 どうも、ありがとうございました。 ---------------------------------- Private Sub TextBox1_KeyPress(ByVal sender As Object, _ ByVal e As System.Windows.Forms.KeyPressEventArgs) _ Handles TextBox1.KeyPress If (e.KeyChar < "0"c Or e.KeyChar > "9"c) And e.KeyChar <> vbBack Then e.Handled = True End If End Sub