2009-05-20 13 views
1

Eines der Felder in meinem Formular ist ein Textfeld, in das der Benutzer eine ID eingibt. Das ist der Fremdschlüssel für eine andere Tabelle, also muss ich die Daten gegen diese Tabelle abfragen, bevor ich sie einreichen darf. Ich würde lieber nicht textchanged verwenden, da jeder Buchstabe, den sie eingeben, eine andere Abfrage, Fokusverlust würde nur einen Fehler zeigen oder validieren, wenn sie bereits in einem anderen Feld sind (nicht sicher, ob es ausgelöst würde, wenn sie nur auf Senden klicken).vb.net Textfeld Validierung gegen eine Datenbank?

Ich würde es vorziehen, jemanden nicht zu zwingen, in diesem Bereich zu bleiben, aber vielleicht ist das der beste Weg?

Gibt es eine Methode zu schlafen und zu warten, um zu sehen, ob es ein weiteres eingehendes Schlüsselereignis innerhalb von X Sekunden gibt? Wenn ja, kann ich nachsehen, ob es sich um einen Buchstaben oder eine Nummer handelt, gegen einen Tab oder um eine Rückkehr?

Gibt es ein anderes Ereignis, das ich haken sollte, das benutzerfreundlich ist?

Soll ich eine Kopie dieser Spalte der Tabelle herunterziehen und dort vergleichen? (Ich könnte damit umgehen, eine Aktualisierungsschaltfläche hinzuzufügen, um einen neuen Cache zu ziehen)

Antwort

1

Sie sollten in Betracht ziehen, ein Timer-Steuerelement dafür zu verwenden.

Deaktivieren und aktivieren Sie die Steuerung bei jedem Drücken der Taste, um das Zeitlimit zurückzusetzen.

Wenn das Timer-Ereignis ausgelöst wird, deaktivieren Sie das Steuerelement und fragen Sie die Datenbank ab.

EDIT: Ich denke immer noch Ihre beste Wette ist wahrscheinlich auf dem Lost Focus-Event.

+0

Verlorene Fokus-Ereignis scheint auf meiner Maschine in Ordnung zu gehen. Antwort vom Server ist blitzschnell scheint es, so dass ich nicht sicher bin, was auf dem Computer eines Benutzers passieren wird. Ich deaktiviere dieses Feld kurz, während ich es gegen die Datenbank abpralle, seit ich das Formular verloren habe, wo der Benutzer den Fokus wechseln wollte. – Maslow