2017-09-11 2 views
0

Wie kann ich eine TextBox, die nur Zahlen von 30 bis 250 in VB.Net 2010 akzeptiert. Ich muss den Wert in einem Integer speichern, so dass ich kann verwende es in einer Berechnung.Wie kann ich eine TextBox erstellen, die nur Zahlen von 30 bis 250 akzeptiert

Dim x As String = textbox1 
Dim y As Integer 

y = Cint(textbox1) 

If x <= 29 then 
Msg("cant accept") 
Textbox1 = "" 
End if 
+1

Sind Sie sicher, dass Sie in der Lage sind, Ihren Code zu kompilieren? Wie möchten Sie das TextBox1-Objekt auf String- und Integer-Variablen festlegen, wie stellen Sie das Textfeld auf eine leere Zeichenfolge ein? Sie sollten die Text-Eigenschaft anstelle des textBox-Objekts selbst verwenden. – Youssef13

+3

Schritt 1: Verwenden Sie NumericUpDown anstelle von TextBox. –

Antwort

0

Ich schlage vor, Sie NumericUpDown Kontrolle statt TextBox verwenden, aber wenn Sie TextBox wollen, dies verwenden versuchen:

Private Sub TextBox1_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Leave 
    Dim int As Integer = 0 
    If Not Integer.TryParse(TextBox1.Text, int) Then 
     MessageBox.Show("You should enter a number") 
     TextBox1.Clear() 
     Return 
    End If 

    If int < 30 OrElse int > 150 Then 
     MessageBox.Show("You should enter a number between 30 and 150") 
     TextBox1.Clear() 
    End If 
End Sub 
+0

Das Ereignis 'Leave' ist nicht zur Validierung vorgesehen. – jmcilhinney

+1

Ich sah deine Antwort und es ist besser als meine^_^ Ich habe noch nie das Validierungsereignis gesehen. Danke, ich habe etwas Neues gelernt :) – Youssef13

+0

Kannst du mir einen Beispielcode geben, wenn ich das numericUpDown benutze? Tahnkyou –

6

Validate der Inhalt der Steuerung in den Validating Event-Handler und die Veranstaltung abzusagen, wenn es fehlschlägt. Das verhindert, dass das Steuerelement den Fokus verliert, wenn es einen ungültigen Text enthält. Sie können den Inhalt dann später vertrauensvoll mit CInt oder Convert.ToInt32 verwenden.

Private Sub TextBox1_Validating(sender As Object, e As CancelEventArgs) Handles TextBox1.Validating 
    Dim number As Integer 

    If Not Integer.TryParse(TextBox1.Text, number) OrElse 
     number < 30 OrElse 
     number > 250 Then 
     MessageBox.Show("Please enter an integer from 30 to 250.", 
         "Invalid Input", 
         MessageBoxButtons.OK, 
         MessageBoxIcon.Error) 

     'Don't let the control lose focus. 
     e.Cancel = True 
    End If 
End Sub 
Verwandte Themen