Laden...

Mausklick in AutoComplete-Liste behauptet "Enter" sei gedrückt worden

Erstellt von citizen.ron vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.962 Views
citizen.ron Themenstarter:in
432 Beiträge seit 2005
vor 14 Jahren
Mausklick in AutoComplete-Liste behauptet "Enter" sei gedrückt worden

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?

49.485 Beiträge seit 2005
vor 14 Jahren

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

citizen.ron Themenstarter:in
432 Beiträge seit 2005
vor 14 Jahren

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

4.939 Beiträge seit 2008
vor 14 Jahren

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.