2017-11-15 28 views
-1

ねえ、textbox1に数字以外の文字が含まれている場合は、ボタンをクリックするたびに「数字のみ入力できます」というメッセージボックスに表示されるようにしたいと思っていました あなたはテキストボックスを使用しなければならない場合であっても適切にAsc関数に問題があります

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 

    If Asc(TextBox1.Text) < 48 Or Asc(TextBox1.Text) > 57 Then 
     TextBox1.Text = True 
     MessageBox.Show("You can only enter numbers") 

    End If 
+0

[ask]を読んで[ツアー] – Plutonix

+0

の内容を確認してください。テキスト全体ではなくe.KeyCodeを確認してください。 – derloopkat

+0

Ascの代わりにIsNumericを使用してください。 –

答えて

1

を使用し、Asc機能は必要ありません。使用整数/ Double.TryParseいっそ

' if you want to accept doubles 
Dim numberDouble As Double 
If Not Double.TryParse(TextBox1.Text, numberDouble) Then 
    TextBox1.Text = True 
    MessageBox.Show("You can only enter doubles") 
End If 

' if you want to accept integers 
Dim numberInteger As Integer 
If Not Integer.TryParse(TextBox1.Text, numberInteger) Then 
    TextBox1.Text = True 
    MessageBox.Show("You can only enter integers") 
End If 

、ジャストNumericUpDown.MaximumとNumericUpDown.Minumum、およびNumericUpDown.DecimalPlaces前に設定して構築されたすべての検証を持っているNumericUpDownをし、使用しています。

Dim numberDecimal As Decimal = NumericUpDown1.Value 
Dim numberDouble = Convert.ToDouble(NumericUpDown1.Value) 
Dim numberInteger = Convert.ToInt32(NumericUpDown1.Value) 

それは(つまりデザイナーで)使用されており、すべての検証が行われます。