Ich mache Formular-Validierung in VB, validiere ich die Textfeld Daten mit txtName_LostFocus
Funktion, und auf falsche Eingabe habe ich txtName.Focus()
. Es funktioniert gut für mich. Aber das Problem ist, dass, als Benutzer keinen gültigen Text eingeben, meine EXIT-Taste funktioniert auch nicht. Gibt es eine Lösung, um diese Lösung zu korrigieren?VB Formular Validierung Problem
Antwort
Die Probleme, die Sie feststellen, resultieren aus dem nicht sorgfältigen Lesen der Dokumentation. Die Dokumentation für die LostFocus
event sehr deutlich machen, dass Sie sollten nicht Versuch, den Fokus zu setzen (zB durch die Focus
method Aufruf) in der Behandlermethode für diese Veranstaltung:
Vorsicht
Do not Versuchen Sie, den Fokus innerhalb der Ereignishandler Enter, GotFocus, Leave, LostFocus, Validieren oder Validiert festzulegen. Dies kann dazu führen, dass Ihre Anwendung oder das Betriebssystem nicht mehr reagiert. Weitere Informationen finden Sie im Thema
WM_KILLFOCUS
im Abschnitt "Tastatureingangsreferenz" und im Abschnitt "Nachrichten-Deadlocks" des Abschnitts "Informationen zu Nachrichten und Nachrichtenwarteschlangen" in der MSDN-Bibliothek unter http://msdn.microsoft.com/library.
Eine bessere Lösung ist die Validating
event zu behandeln. Sie werden Ihre Eingabe innerhalb der Ereignishandlermethode Validating
validieren, die automatisch von .NET Framework ausgelöst wird.
Wenn die Eingabe gültig ist, tun Sie nichts. Wenn die Eingabe nicht gültig ist, legen Sie die Cancel
-Eigenschaft des CancelEventArgs
-Parameters auf true
fest, was dazu führt, dass alle Downstream-Ereignisse unterdrückt werden.
Private Sub myTextBox_Validating(ByVal sender As Object, _
ByVal e As ComponentModel.CancelEventArgs) _
Handles myTextBox.Validating
If Not Valid(myTextBox.Text) Then
' Validation failed, so cancel the event and pre-select the text.
e.Cancel = True
myTextBox.Select(0, myTextBox.Text.Length)
' Optionally (but recommended): Set an ErrorProvider control.
' errorProvider.SetError(myTextBox, "Invalid input")
End If
End Sub
Es funktioniert gut, aber Benutzer kann nicht beenden, bis gültige Informationen. Ich möchte, dass der Benutzer das Formular verlassen/verlassen kann, er/sie hat falschen Text eingegeben –
@Shah Das ist auch in der verknüpften Dokumentation enthalten. Setzen Sie die 'CausesValidation'-Eigenschaft Ihres" Exit "-Buttons (und aller anderen Steuerelemente, die Sie wünschen) auf" true ", so dass das Klicken auf die" Validating "- oder" Validated "-Ereignisse nicht ausgelöst wird. –
- 1. Bootstrap Modal Formular Validierung Problem
- 2. Laravel 5.2 Formular Validierung Umleitung Problem
- 3. Sharepoint Formular-Layout in VB
- 4. E-Mail-Validierung Problem
- 5. Array [] Formular Validierung
- 6. Problem bezogen auf Kentico Online-Formular (Bizform) Validierung
- 7. Javascript Formular Validierung
- 8. Bootstrap & Formular Validierung
- 9. Admin Formular Validierung
- 10. Angularjs Formular-Validierung
- 11. Django Javascript Formular Validierung
- 12. XML Formular Validierung?
- 13. Zend Formular Validierung
- 14. Formular Validierung Autoscroll Änderung Javascript
- 15. Bootstrap Dropdowns Problem ASP.Net VB
- 16. Formular-Array-Validierung Laravel 5.2
- 17. PHP-Formular-Validierung mit Javascript
- 18. DBCP Verbindung Validierung Problem
- 19. VB 2013 load datagridview von einem Formular
- 20. jquery Validierung: Formular verhindern senden
- 21. Android Formular Validierung UI Bibliothek
- 22. Jquery Validierung - mit Formular-Tag
- 23. Async Formular Validierung mit Debounce?
- 24. PHP Formular Validierung und Struktur
- 25. Javascript Formular Validierung insgesamt 100
- 26. JavaScript Formular Validierung funktioniert nicht
- 27. Sicherung Formular Validierung mit Ajax
- 28. Petersilien-Validierung ohne Formular auslösen?
- 29. jQuery Validierung ohne Formular-Tag
- 30. Google App Engine + Formular Validierung
können Sie den Code platzieren, was Sie gerade tun. – coder