-1

入力ボックスにアルファベットを入力すると実行時エラーが発生します

Dim amount As String
        amount = InputBox("Enter the amount of people you want to participtate", "System Message")
        If amount < 0 Or Not (IsNumeric(amount)) Then
            MsgBox("Please enter positive number of people", vbExclamation, "System Message")
        End If
4

3 に答える 3

2

文字列と数字を比較するのはかなり危険で、顔が真っ赤になってしまいます。機能させることはできますが、数値に変換できない文字列を比較しようとしないように、慎重にコーディングする必要があります。別の演算子を使用する必要があります。

    If Not IsNumeric(amount) OrElse amount < 0 Then
        MsgBox("Please enter positive number of people", vbExclamation, "System Message")
    End If

変更された順序と、Or の短絡バージョンである OrElse の使用に注意してください。左辺が既に True の場合、右辺の式は評価されません。

これを行う .NET 中心の方法は、Integer.TryParse() を使用して文字列を数値に変換することです。

于 2013-09-21T17:26:21.823 に答える
0

そこで、テキストボックスの検証を検討していました。最初に、テキストボックスが空ではないことを確認し、それが数値であることを確認したかったのです。私は決して専門家ではありませんが、ユーザー入力を検証するために書いたコードを掲載します。ユーザーが入力しなければならないテキストフィールドがたくさんあったので、関数に入れました。

Class MainWindow 
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
    tb2.Text = tbCheck(tb1)
End Sub

Private Function tbCheck(ByRef tb As TextBox) As Boolean
    tbCheck = tb.Text.Length > 0
    Try
        tbCheck = (tb.Text / 1) > 0
    Catch ex As Exception
        tbCheck = False
    End Try
    Return tbCheck
End Function

クラス終了

これは、コードが期待どおりに機能するかどうかを確認するために作成した単純なプログラムです。これが誰かを助けるか、少なくとも私が欠けているものがあるかどうか教えてくれることを願っています.

于 2014-08-13T02:54:08.497 に答える