麻烦ASC

时间:2017-11-15 16:03:05

标签: vb.net

嘿,我想这样做,以便每当我点击按钮,如果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

1 个答案:

答案 0 :(得分:1)

即使必须使用TextBox,也不需要Asc功能。使用Integer / 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,它内置了所有验证。

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

在使用NumericUpDown.Maximum和NumericUpDown.Minumum之前设置NumericUpDown.Minumum和NumericUpDown.DecimalPlaces(即在设计器中),并且所有的验证都会得到处理。