我制作了一个vb.net表单,其中包含3个文本框和一个名为Calculate的按钮。我想要做的就是在文本框中输入一些值,然后单击计算数字的按钮。我已经完成了计算编码部分。
现在我想只在文本框中输入数字,如果我输入字母或符号,当我点击确定按钮时,我需要用ok按钮获得一条严重的错误信息。
我该怎么做?
答案 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
答案 2 :(得分:0)
您需要使用验证控件来查看此链接http://msdn.microsoft.com/en-us/library/aa479013.aspx#aspnet-validateaspnetservercontrols_topic3
答案 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