2016-06-20 20 views
0

Ich versuche, die Anzahl der Zeichen in einem TextBox platziert, aber einige Probleme haben. Der Code, den ich verwendet, ist wie folgt:Überprüfen, dass TextBox.Text.Length ist zwischen 1 und 10

If Not ((TextBox5.Text.Length) <= 1) Or ((TextBox5.Text.Length) >= 10) Then 
      MsgBox("Invalid date entry. Use the the following format: DD-MM-YYYY.") 
      TextBox5.Focus() 
      TextBox5.SelectAll() 
Else 
    'do whatever 
End If 

Was will ich für TextBox5 ist eine Länge zu haben, zwischen (und einschließlich) 1 und 10, wenn nicht die TextBox erneut auswählen es bereit für einen weiteren Benutzereingaben zu machen.

Der Code reagiert gut auf eine Eingabe kleiner als 1, erkennt jedoch keine Eingaben, die länger als 10 Zeichen sind. Ich kann nicht sehen, was ich falsch mache?

+2

Haben Sie versucht, den 'Not'-Teil zu entfernen – Werdna

+0

Sie sagten" Wenn es nicht unter 2 oder über 9 ist ", jede Zahl 2 oder höher wird die if-Anweisung übergeben. –

Antwort

2

Erstens, rufen Sie nicht Focus. Die Dokumentation besagt eindeutig, rufen Sie nicht Focus. Wenn Sie ein Steuerelement fokussieren möchten, rufen Sie die Methode Select auf.

Sie müssen jedoch auch nicht anrufen. Sie sollten das Validating-Ereignis behandeln und wenn das Steuerelement die Überprüfung nicht besteht, setzen Sie e.Cancel auf True, und das Steuerelement verliert Fokus in erster Linie nicht.

If myTextBox.TextLength < 1 OrElse myTextBox.TextLength > 10 Then 
    'Validation failed. 
    myTextBox.SelectAll() 
    e.Cancel = True 
End If 
0

Von dem, was ich verstehen kann, sollte dies den Trick tun.

HINWEIS Es gibt ein paar verschiedene Möglichkeiten, um diese Aufgabe zu erfüllen, aber von dort Beispielcode, den Sie gezeigt haben, sollte dies in Ordnung sein.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    If TextBox5.Text.Length < 1 Or TextBox5.Text.Length > 10 Then 
     MsgBox("Invalid date entry. Use the the following format: DD-MM-YYYY.") 
     TextBox1.SelectAll() 
    Else 
     MessageBox.Show("date accepted...") 
    End If 
End Sub 

Ich habe diese Auslösung von einem Button Click Event.