-1

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

但如果它有例如 190.5g 的文本,那么它将显示 msgbox("error")

我有我在某处找到的这段代码

 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 的数字上,无论如何都要包含 . ?

4

3 回答 3

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

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

于 2013-02-19T12:43:54.510 回答
1

改用IsNumeric函数

    If Not IsNumeric(pbox.Text) Then
        MsgBox("Please input number only on price")
        pbox.Clear()
        Exit Sub
    End If
于 2013-02-19T12:45:50.317 回答
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;
        }
    }
于 2013-02-19T12:51:12.477 回答