Hi Folks,
wir wollen das Drücken der Enter Taste in bestimmten Formularen abfangen (bspw. weil ein Assistent zum nächsten Schritt schalten soll o.ä.).
Problem (s. beiliegendes Projekt):
Wenn eine Textboxeine AutoComplete-Liste anbietet, der Benutzer einige Zeichen in das Textfeld eingibt, die Vervollständigungsliste aufgeht und der Benutzer dann mit der Maus eine Auswahl in der Liste trifft entsteht im Control ein Enter-Ereignis.
Das ist doch ein Bug im Framework, oder?
Wie kann ich jetzt noch umgehen, dass das Formular die Enter-Verarbeitung aufnimmt, obwohl ja nur die Listenauswahl in der Textbox eingetragen werden soll?
Hallo citizen.ron,
redest du über das Enter-Event? Oder doch über das Key(Down/Up/Press)-Event für die Enter-Taste?
Insgesamt habe ich das Problem noch nicht genau verstanden.
Kennst du AcceptButton? Das scheint mir doch hier das passende zu sein.
herbivore
Hi Herbivore,
das KeyDown-Ereignis erhält die Nachricht, die Eingabetaste sei gedrückt worden, obwohl es in Wirklichkeit ein Mausklick in der AutoComplete-Liste war.
AcceptButton scheidet aus: wir benutzen ComponentOne-Buttons, die nicht als AcceptButton vom Formular anerkannt werden 😭
Was hast Du nicht verstanden?
Beiliegendes Projekt simuliert das Problem doch perfekt?
Gruß
Ron
Das scheint ein normales Message-Forwarding zu sein, daß häufig in der WinAPI verwendet wird. Meistens ist es zwar der umgekehrt Fall, daß z.B. das Drücken der Leertaste in einer CheckBox als Klick-Ereignis weitergeleitet wird, aber hier scheint eben ein Mausklick das KeyDown-Enter auszulösen.