-2

如果我想对 char 使用 Try-Catch 并确保在我输入数值时它不会运行程序,我将如何在 Visual Basic 中执行此操作?一小段代码的例子会很棒。

4

1 回答 1

1

您不应该将 a Try/Catch用于正常的程序控制流。例外就是这样:您不希望正常发生的特殊情况。

当字符包含数字时,不要使用异常来炸毁,而是防止它被存储在第一个实例中。

实现这一点的一个好方法是添加一个KeyPress处理程序。

这是一个仅允许数字和退格键的 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 事件。这使控件无法处理按键。

这里和 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
于 2013-03-04T02:11:50.717 回答