如果textbox有字符串然后显示msgbox但(。)不计数。视觉基础

时间:2013-02-19 12:41:25

标签: vb.net

我有这个文本框,我想只输入包含的(。)数字。例如是190.5。

但是如果它有例如190.5g的文本,那么它将显示msgbox(“错误”)

我在某个地方找到了这个代码

 Dim allDigit = pbox.Text.Trim.Length <> 0 AndAlso _
      pbox.Text.All(Function(chr) Char.IsDigit(chr))
        If Not allDigit Then
            MsgBox("Please input number only on price")
            pbox.Clear()
            Exit Sub
        End If

如果我添加。在它显示msgbox的数字上,所以无论如何要包括。 ?

3 个答案:

答案 0 :(得分:2)

查看Decimal.TryParse,而不是自己拉弦。

Dim value As Decimal
Dim yourString As String = "1234"
If Not Decimal.TryParse(yourString, value) Then
    MsgBox("Please input number only on price")
    pbox.Clear()
    Exit Sub
End If

应该注意的是,代表小数分隔符的字符会根据操作系统的语言设置而有所不同 - 对于美国/英国英语,它将是句号,对于德语,它将是逗号。

答案 1 :(得分:1)

使用IsNumeric功能

    If Not IsNumeric(pbox.Text) Then
        MsgBox("Please input number only on price")
        pbox.Clear()
        Exit Sub
    End If

答案 2 :(得分:0)

这是我在c#中使用的代码

    private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (!char.IsControl(e.KeyChar) 
            && !char.IsDigit(e.KeyChar) 
            && e.KeyChar != '.')
        {
                            //message box
            e.Handled = true;
        }

        // only allow one decimal point
        if (e.KeyChar == '.' 
            && (sender as TextBox).Text.IndexOf('.') > -1)
        {
                            //message box
            e.Handled = true;
        }
    }