如何仅在vb.net中的文本框中添加数值

时间:2013-01-03 13:41:39

标签: vb.net validation

我制作了一个vb.net表单,其中包含3个文本框和一个名为Calculate的按钮。我想要做的就是在文本框中输入一些值,然后单击计算数字的按钮。我已经完成了计算编码部分。

现在我想只在文本框中输入数字,如果我输入字母或符号,当我点击确定按钮时,我需要用ok按钮获得一条严重的错误信息。

我该怎么做?

4 个答案:

答案 0 :(得分:2)

如果您希望能够在用户在WinForm应用程序中输入其值时处理此问题,那么这很有效:

Private Sub TextBox_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Textbox.KeyDown
        Select Case e.KeyCode
            Case Keys.D0 To Keys.D9, Keys.NumPad0 To Keys.NumPad9, _
                    Keys.OemPeriod, Keys.Decimal, Keys.Back, Keys.Delete, _
                    Keys.Left, Keys.Right
                If e.Shift = True Then
                    e.SuppressKeyPress = True
                    Exit Sub
                End If
                e.SuppressKeyPress = False
            Case Else
                e.SuppressKeyPress = True
        End Select
    End Sub

它允许文本框中的数字,小数和导航(删除,退格,左和右)。

答案 1 :(得分:1)

您可以使用Int32.TryParse(或Double.TryParse)来检查输入的数字是否为整数(或双精度数,小数位)。

Dim num As Int32
If Not Int32.TryParse(textBox1.Text, num) Then
    MessageBox.Show("Please enter only integers!", "Critical Warning",
                     MessageBoxButtons.OK, MessageBoxIcon.Warning)
End If

MessageBox.Show Method

答案 2 :(得分:0)

答案 3 :(得分:0)

您没有指定是编码Asp还是WinForms 的WinForms:

Private Sub TextBoxes_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged,TextBox2.TextChanged,TextBox3.TextChanged
  'Assuming TextBox1,TextBox2,TextBox3 are your textboxes
   Dim txt as new textbox
   txt=DirectCast(sender,TextBox)
   If IsNumeric(txt.text)=False Then
     'Here put your code: what you would to do if user insert a not numeric value
     'For example, messagobox, ErrorProvider, or clear the textBox etc
   End if

End Sub