[英]if textbox has string then show msgbox but the (.) doesnt count. visual basic
我在此文本框中只想輸入包括的數字(。)。 例如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的數字上,因此無論如何都包含。 ?
請檢查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
應該注意的是,代表小數點分隔符的字符將根據操作系統的語言設置而有所不同-對於美國/英國英語將是句點,對於德語將是逗號。
改用IsNumeric函數
If Not IsNumeric(pbox.Text) Then
MsgBox("Please input number only on price")
pbox.Clear()
Exit Sub
End If
這是我在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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.