Mit Return statt Tab zum nächsten Feld wechseln
-
Hallo,
wie kann man einen Tabulator in einem Edit Feld simulieren?
Ich möchte den Fokus beim Drücken von Return gerne auf das nächste
Edit Feld setzen.Normal geht das ja so:
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key) { if (Key == 13) { Edit2->SetFocus(); } }
ich möchte aber diese Funktion nicht 20 mal in meinem Programm haben,
also möchte ich nicht Edit2 fest angeben sondern das nächste in der Tabulator
Reihenfolge.Wie geht das? Hat jemand eine Idee?
-
Hallo
Diese Mehtode als KeyPress-Event an alle Edits übergeben :
void __fastcall TForm1::EditKeyPress(TObject *Sender, char &Key) { if (Key == VK_RETURN) { Key = '\0'; TWinControl *Next; if ((Next = FindNextControl(ActiveControl, true, true, true)) != NULL) Next->SetFocus(); } }
bis bald
akari
-
ich würds so machen :
void __fastcall TForm1::EditKeyPress(TObject *Sender, char &Key) { if (Key == VK_RETURN) { keybd_event(VK_TAB,0,0,0); keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0); } }
-
if (Key == VK_RETURN) PostMessage(Handle, WM_NEXTDLGCTL, 0, 0);
-
Danke! Klappt wunderbar
würde doch auch prima in die FAQ passen oder?