VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。
基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。
TextBoxに数値しか入力させたくない場合には、KeyPressイベントで入力されたキーを判断します。入力されたキーが数値以外の時はe.Handled = Trueとして入力されたキーを無効にします。
サンプル1では、数値のみを入力可能にしています。これだとバックスぺースキーも無効であり現実的ではありません。
サンプル2では、バックスペースとドットの入力も可能です。しかしドットは何個でも入力できるので、小数の入力を受け付けるようにするにはもう少し手を加える必要があります。(各自で修正してみてください)
どちらのサンプルもクリップボードからペーストされると数値以外の値も入力されてしまうことに注意してください。
'サンプル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(数値とバックスペースとドッドを入力可能にする) 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