2016-10-13 5 views
0

私は、VBでは、数値データのみを受け付けるように設定されたテキストボックスを持っています。VBテキストボックス受け入れる非数値データ

ユーザーがテキストボックスの自己クリア数値以外のCHARを提供している場合は、

ただし、ユーザーが最初の番号を提供する場合、そのいずれかを提供 - テキストボックスがまたは「+」

をします「」これを有効な入力として受け入れます。ユーザタイプもう一つの任意の型のチャー、すなわち数またはchar

は次にテキストボックスが「実現」

となります自己クリア。

これは、VBが文字 ' - 'と '+'を格納する方法によるものかどうか疑問に思っていましたか?

「 - 」または「+」が入力され、セルフクリアされている場合は、2つの例外を追加するだけです。

さらに洗練されたソリューションがありますか?

ありがとうございます。

コード:

Private Sub TextBox1_Change() 

'Textval used as variable from user input 
'Numval becomes textval providing the user input is numerical 

Dim textval As String 
Dim numval As String 

    textval = TextBox1.Text 
    If IsNumeric(textval) Then 
    numval = textval 
    Else 
    TextBox1.Text = CStr(numval) 
    End If 
End Sub 
+0

[**この**](のhttp:/ /stackoverflow.com/questions/15423114/checking-to-see-if-text-box-input-is-numeric?rq=1)あなたが探しているかもしれないので、読書する価値があります。 – Codexer

+0

マスクされたテキストボックスを使用することは、提案されていることに対する代替の解決策になる可能性があります。 –

答えて

-2

あなただけあなたが望むものを許可への入力を試してみて、解析する必要があります。解析が成功である場合にのみIntegerタイプ、非アルファベット文字...

0

コードvb.netが可能になります

Private Sub TextBox1_Change() 
    Dim intVal As Integer = 0 
    If Not Integer.TryParse(TextBox1.Text, intVal) Then 
     TextBox1.Text = String.Empty 
    End If 
End Sub 

...コントロールからテキストを一掃そうでない場合は単独のフィールドを残して:

If Asc(e.KeyChar) <> 13 AndAlso Asc(e.KeyChar) <> 8 AndAlso Not IsNumeric(e.KeyChar) Then 
' your code here 
    e.Handled = True 

エンド

、あなたがテキストに置き換えできる場合: コード:

Text = Text.Replace("string", "replace_by_this_string") 
+0

あなたが提供したコードのどこから 'e'引数が得られますか?別の言葉では、置き換えの例は全体的に無関係であり、彼の質問とは関係ありません。 – Codexer

0

プログラムは、テキストボックスに数値データのみを入力するユーザーを必要とする場合は、ユーザーがテキストボックスのKeyDownイベントを使用して、キー

を押すと、あなたが制限を強制すべきは:

'Omitting the parameters and Handles keyword 
Private Sub textbox_KeyDown() 
    'Set the keys you would want to allow in this array 
    Dim allowedkeys As Keys() = {Keys.D1, Keys.D2, Keys.D3, Keys.D4, Keys.D5, Keys.D6, Keys.D7, Keys.D8, Keys.D9, Keys.D0, Keys.Back} 

    For i = 0 To allowedkeys.Length - 1 'Iterate through the allowed keys array 
     If e.KeyCode = allowedkeys(i) Then 'If the key pressed is present in the array... 
      Exit Sub 'The check returned a success. Exit and accept the key 
     End If 
    Next 
    e.SuppressKeyPress = True 'Supress all keys that failed the check 
End Sub 

ドン」必要なキーを追加することを忘れないでください!スペースキー、数字キー、ドット(ポイント)キー?

この方法であなたはChangedイベントのチェックを外してnumval = textval

したり、それらの怠惰なプログラマのための直接行くことができますが、numval = TextBox1.Textnumval = Val(TextBox1.Text)が同様に働い

関連する問題