Focus bei dynamischem Enable/Disable

Athor

Mitglied
Hallo allerseits

Ich bin momentan am Umschreiben einer VFP-Applikation nach C#.
Nun habe ich aber eine kleine Unschönheit endeckt wo ich wohl noch einen Knoten im Kopf habe, vielleicht helft Ihr mir ja den zu lösen ;-)

Folgendes.

Auf einer Form sind mehrere Felder hintereinander gesetzt, und dies z.B. 2 Reihen lang. (Siehe Bild)
bild2jxk.th.jpg


Standardmässig sind nur die vordersten Felder aktiviert, der Rest ist Disabled.

Wenn nun im vordersten Feld ein gültiger Wert eingetragen wird, dann sollen die Hinteren Felder aktiviert werden.
Diese Ueberprüfung und aktivierung der anderen Felder geschieht in der Validating-Funktion.

Dies ist eigentlich kein Problem, doch wenn man das Feld mittels Tabulator verlässt, dann möchte ich gerne dass das nächste Feld(2tes von Links) den Focus enthält.

Der Focus springt aber ins untere Feld, welches vor der Validating-Funktion das nächste Feld gewesen wäre das den Focus erhalten hätte.

Muss ich nun in der Validating des ersten Feldes immer extra den Focus in das zweite Feld setzen, oder gibt es irgendwie eine Möglichkeit des Textfeldes dass es nochmals von sich aus überprüft welches das nächste Focus-Feld wäre?

Oder muss ich im WndProc den Focus-wechsel iwie verhindern und ihn neu suchen/setzen danach?

Grüsse und Danke für Tips
Dani
 
Die TabIndexe wurden richtig vergeben (so als wenn alle Felder gültig wären)?

Wann wird ein Control aktiv nach verlassen des Controls oder während der Text eingabe?
Wenn nach verlassen des Controls ist in diesem fall die Überprüfung zu spät.
 
Die TabIndexe wurden richtig vergeben (so als wenn alle Felder gültig wären)?

Die Indexe sind so vergeben als wenn alle Felder aktiv wären.

Wann wird ein Control aktiv nach verlassen des Controls oder während der Text eingabe?
Wenn nach verlassen des Controls ist in diesem fall die Überprüfung zu spät.
Die Controls werden aktiviert in der Validating-Funktion des ersten Feldes.

Ich kann während dem Eingeben der Daten vom ersten Feld nicht schon eine überprüfung machen ob es ein gültiger Wert ist, da ich erst eine SQL-Abfrage mit X-Kriterien machen muss, zum wissen ob es erlaubt ist oder nicht.

Da wäre es etwas unverhältnissmässig bei jedem Tastendruck ein SQL-Abfrage auszulösen ;-)
 
Zurück