数値入力チェック – プログラミング – Home

通知
すべてクリア

[解決済] 数値入力チェック


HotVari
 HotVari
(@HotVari)
ゲスト
結合: 18年前
投稿: 2
Topic starter  

テキストボックスに数値を入力してそれを数値変数にセットするときに
普通に数字を入れると問題ないですが数値以外の文字を入れるとエラーがでます。

Dim i as Integer
i = CInt(Input.Text) AAAなどの文字だとエラー

そこでKeyDownイベントで入力制限をつけようと以下のようにしましたが
[-15---]のように入力するとやっぱりエラーになります

Private Sub Input_KeyDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyEventArgs) Handles Input.KeyDown

''0'-'9','-','.'以外をはじく
If (e.KeyCode >= Keys.NumPad0 And e.KeyCode <= Keys.NumPad9) _
Or (e.KeyCode >= Keys.D0 And e.KeyCode <= Keys.D9) _
Or e.KeyCode = Keys.Decimal Or e.KeyCode = Keys.Subtract _
Or e.KeyCode = Keys.Back Or e.KeyCode = Keys.OemPeriod _
Or e.KeyCode = Keys.OemMinus Then
Else
e.SuppressKeyPress = True
End If

End Sub

なにかいい方法はないでしょうか?
環境はVB.net2005です
よろしくお願いします。


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

こういうのは普通TextBoxで受け付ける/受け付けないを判定するのでなく、
何でも受け付ける状態にして、いざその値を使うというときに使える/使えない
を判定するのが一般的です。

で、判定には 2005 なら TryParse を使えばいいでしょう。

TextBoxで制御したいのであれば、
> Else
> e.SuppressKeyPress = True
> End If
のところで、入力されている値は数値として正しいかと判定する処理を入れればよさそ
う。
(但し、入力回数分そのIF文を通ることになる)


返信引用
HotVari
 HotVari
(@HotVari)
ゲスト
結合: 18年前
投稿: 2
Topic starter  

TryParseで処理することにしました
ありがとうございます


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました