プロが教えるわが家の防犯対策術!

タイトルどおりです。
フォームに貼り付けた、TextBoxに、半角数字のみしか入力できないようにしたいです。
000000~999999までのコード(数字)を入力させるようにするわけですが、そのままだと半角英数も全角も入力できてしまいます。

GrapeCity社製のカスタムコントロール「InputMan」の“Number”を用いると簡単なのですが、これだとカーソルがボックス内の右端にきて、一の位から入力が始まってしまいます。
数字は、ボックス内の左側から入力されていくようにしたいのですが、“Number”だとなんか出来なさそう・・・?
(“Number”で左側から入力できるならそれがいいのですが)

そこで、TextBoxを使うことにしたのですが、TextBoxだと、半角数字のみしか入力できないような制限がかけるのかが、わかりません。

もし、お分かりの方がいらっしゃいましたら、ご教授下さいませ。

A 回答 (2件)

こんにちは、じゃんぬねっと です。



まずは、検索するクセをつけましょう。
http://dobon.net/vb/dotnet/control/numerictextbo …

コンテキストメニューからのペースト、Ctrl + C などのショートカットによるペーストも防ぐ必要があれば防ぎましょう。
面倒なので、私はカスタムコントロールを作りましたが。
    • good
    • 1
この回答へのお礼

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

お礼日時:2005/05/09 18:07

コピペですみません。


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

で、いかがでしょうか。

この回答への補足

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

補足日時:2005/05/09 18:03
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/05/09 17:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A