2013-03-04 60 views
-2

如果我想爲字符使用Try-Catch並確保在我輸入數字值時不會運行程序,那麼我會如何在Visual Basic中執行此操作?一小段代碼的例子會很棒。字符處理VB

+0

@Mitch我只是在學習Visual Basic,我試圖處理一個字符類型的異常。你至少可以更具體一點嗎?不知道爲什麼我需要反對提問。 :/ – Alex 2013-03-04 01:10:28

+0

@Mark通過製作一個蒙面的文本框或你的意思是?我對視覺基礎還很陌生。 – Alex 2013-03-04 01:25:50

+0

順便說一句,這不是我的downvote。 – 2013-03-04 02:16:51

回答

1

對於正常的程序控制流程,您不應該使用Try/Catch。例外情況就是這樣:你不希望正常發生的特殊情況。

在第一個例子中,當字符包含數字時,不要使用異常來炸掉 。

實現此目的的一個好方法是添加一個KeyPress處理程序。

這裏有一個按鍵處理,只允許數值和退格的例子(這是在C#中,但它很容易轉換爲VB.NET):

private void txtTimeout_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     e.Handled = !(Char.IsNumber(e.KeyChar) || e.KeyChar == '\b'); 
    } 

設置KeyPressEventArgs.Handled爲true取消KeyPress事件。 這可以防止按鍵處理。

還有其他例子here和StackOverflow。

Private Sub textBox1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) _ 
    Handles textBox1.KeyPress 

    ' Determine what is a valid key press 
    If Char.IsNumber(e.KeyChar) = True Then 
     ' Stop the character from being entered into the control since it is numeric 
     e.Handled = True 
    End If 

End Sub