-2

文字に Try-Catch を使用し、数値を入力したときにプログラムが実行されないようにしたい場合、Visual Basic でどのようにすればよいでしょうか? コードの小さなスニペットの例は素晴らしいでしょう。

4

1 に答える 1

1

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 に答える