2013-02-19 40 views
-1

我有這個文本框,我只想輸入數字(。)包括在內。例如是190.5。if textbox has string then then msgbox but(。)does not count。 visual basic

但是如果它有例如190.5克文本,然後它會顯示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的數量,所以無論如何包含。 ?

回答

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 

應當指出的是,代表小數點分隔符將根據操作系統的語言設置,改變人物 - 美國/英國英語它會期間,德國這將是逗號。

+0

我不知道如何使用它。我剛剛從某處獲得了代碼,所以我不知道它是如何工作的。 – 2013-02-19 12:45:21

+0

@BillyOtsuka - 增加了一個例子。 – 2013-02-19 12:49:56

1

使用IsNumeric函數,而不是

If Not IsNumeric(pbox.Text) Then 
     MsgBox("Please input number only on price") 
     pbox.Clear() 
     Exit Sub 
    End If 
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; 
     } 
    }