HIRO's.NET

VB.NET, C#, PowerShell Tipsサイト

 VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。

 基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。

HIRO's.NET RSSHIRO's.NET RSS


VB.NET 2005の開発でお困りのことはありませんか?
そんな悩みは当サイトで解決!!

HOME > VB.NET 2005 Tips > コントロール > TextBox Tips メニュー

02.数値のみ入力可能にする

UPDATE:2006/11/01 

<< 前のTips  次のTips >>

 

 TextBoxに数値しか入力させたくない場合には、KeyPressイベントで入力されたキーを判断します。入力されたキーが数値以外の時はe.Handled = Trueとして入力されたキーを無効にします。
 サンプル1では、数値のみを入力可能にしています。これだとバックスぺースキーも無効であり現実的ではありません。
 サンプル2では、バックスペースとドットの入力も可能です。しかしドットは何個でも入力できるので、小数の入力を受け付けるようにするにはもう少し手を加える必要があります。(各自で修正してみてください)

 どちらのサンプルもクリップボードからペーストされると数値以外の値も入力されてしまうことに注意してください。

 
サンプル1
'サンプル1(数値のみ入力可能にする)
Private Sub TextBox1_KeyPress(ByVal sender As System.Object, _
    ByVal e As System.Windows.Forms.KeyPressEventArgs) _
    Handles TextBox1.KeyPress

    If (e.KeyChar < "0"c Or e.KeyChar > "9"c) Then
        e.Handled = True
    End If

End Sub


 
サンプル2
'サンプル2(数値とバックスペースとドッドを入力可能にする)
Private Sub TextBox1_KeyPress(ByVal sender As System.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 And e.KeyChar <> "." Then
        e.Handled = True
    End If

End Sub