• ベストアンサー

TextBoxに半角数字のみの入力しかできないようにしたい

タイトルどおりです。 フォームに貼り付けた、TextBoxに、半角数字のみしか入力できないようにしたいです。 000000~999999までのコード(数字)を入力させるようにするわけですが、そのままだと半角英数も全角も入力できてしまいます。 GrapeCity社製のカスタムコントロール「InputMan」の“Number”を用いると簡単なのですが、これだとカーソルがボックス内の右端にきて、一の位から入力が始まってしまいます。 数字は、ボックス内の左側から入力されていくようにしたいのですが、“Number”だとなんか出来なさそう・・・? (“Number”で左側から入力できるならそれがいいのですが) そこで、TextBoxを使うことにしたのですが、TextBoxだと、半角数字のみしか入力できないような制限がかけるのかが、わかりません。 もし、お分かりの方がいらっしゃいましたら、ご教授下さいませ。

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

  • ベストアンサー
  • umejas
  • ベストアンサー率28% (9/32)
回答No.1

コピペですみません。 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 で、いかがでしょうか。

THUBAN
質問者

お礼

早速のご回答ありがとうございます。 環境は、VB.NETですが、参考にして、ちょっと書き直してやってみようと思います。

THUBAN
質問者

補足

お礼後の書込みです。 以下のコードで実現できました。 半ば自己解決となりましたが、 どうも、ありがとうございました。 ---------------------------------- 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

その他の回答 (1)

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

こんにちは、じゃんぬねっと です。 まずは、検索するクセをつけましょう。 http://dobon.net/vb/dotnet/control/numerictextbox.html コンテキストメニューからのペースト、Ctrl + C などのショートカットによるペーストも防ぐ必要があれば防ぎましょう。 面倒なので、私はカスタムコントロールを作りましたが。

THUBAN
質問者

お礼

検索しまくっていたのですが、見つけ出すことができずに、こちらへ質問しました。 その後、そのサイトで発見しましたので解決に至りました。 わざわざ、ありがとうございました。

関連するQ&A