0

次のコードを使用しています。

If IsNumeric(TextBox2.Text) Then
    not important code
Else
    MsgBox("O campo minutos só pode conter números!")
End If

基本的に必要なのは、テキストボックスに挿入されたデータが数字のみかどうかを確認することです.#や$などの文字や特殊文字を挿入すると問題なく動作し、エラーがポップアップしますが、+6を入力すると通過しますコードに。

これは正常ですか?もしそうなら、+または-がある場合でもエラーを出す方法はありますか? *、/、または = を使用すると、エラーもポップアップ表示されます。

4

5 に答える 5

1

IsNumeric() はかなり大きなネットをキャストします。また、通貨の値を数値と見なします。まあ、彼らは確かに会計士にです。

より制限を加えたい場合は、好きな数値のタイプにより具体的な変換方法を使用してください。Double.TryParse() のように。

于 2013-07-24T15:04:55.540 に答える
1

私が理解しているように、数字の文字のみを保持したい (「.」、「、」、...)Where()および VB のラムバ式を使用します。これは、数字の文字列にない文字を選択してカウントし、カウントがゼロに等しいかどうかをチェックします。

If IsNumeric(myString.Where(Function(c) Not "0123456789".Contains(c)).Count() = 0) Then
    not important code
Else
    MsgBox("O campo minutos só pode conter números!")
End If

より良い、Any()代わりに使用するWhere().Count()

If IsNumeric(Not myString.Any(Function(c) Not "0123456789".Contains(c))) Then
    not important code
Else
    MsgBox("O campo minutos só pode conter números!")
End If

これはおそらく正規表現でも実行できます。

于 2013-07-24T15:00:16.407 に答える
1

もう少し見栄えを良くしたい場合は、試してみてください

If IsNumeric(TextBox2.Text) And TextBox2.Text.Contains("+") or Textbox2.Text.Contains("-")        
Then
    not important code
Else
MsgBox("O campo minutos só pode conter números!")
End If

PS:これが役に立てば幸いです

于 2013-07-25T17:49:24.367 に答える