![]() |
PageControl-Seitenwechsel lößt immer OnEnter aus
Hallo,
ich habe ein Projekt von mir von Delphi 5 auf 2009 umgestellt. Dabei ist mir fogendes aufgefallen: Wenn auf einer PageControl-Seite ein Control den Fokus hat und auf eine andere Seite gewechselt wird, erhält das erste Control auf der neuen Seite den Fokus und OnEnter von diesem Control wird ausgeführt. So könnt Ihr das nachvollziehen: Erstellt ein PageControl mit 2 Seiten. Auf die erste Seite eine ComboBox einfügen. In der ComboBox.OnEnter ShowMessage('') eintragen. Auf die zweite Seite einen Button einfügen. Das ganze compilieren. Auf die Zweit Seite wechseln. Den Button anklicken. Auf die erste Seite wechseln. Nun erscheint das ShowMessage-Fenster, da ComboBox.OnEnter ausgelößt wird. Wie kann ich verhindern, dass das erste Control ausgewählt wird oder OnEnter aufgerufen wird? Die ersten Controls auf einer meiner Seiten sind 3 Radiobuttons in Verbindung mit einer ComboBox. Durch das neue Verhalten wird die vom User getroffene Auswahl verändert. Z.B. ist vor dem Seitenwechsel Radiobutton 3 ausgewählt. Durch den Seitenwechsel wird dann aber die Combobox, die zum Radiobutton 1 gehört fokusiert. Durch OnEnter der Combobox wird Radiobutton 1 ausgewählt. D.h. eine vom Uster getroffene Auswahl wird ohne sein Wissen verändert. Lösungen? Danke! |
Re: PageControl-Seitenwechsel lößt immer OnEnter aus
Also ich finde das Verhalten durchaus normal - welches Control sollte denn alternativ den Fokus erhalten? Eventuell muss man die Programmlogik in diesem Punkt nochmal überdenken. Ein OnEnter kann ja auch durch ein einfaches TAB oder eine Cursortaste ausgelöst werden. Ist dem Benutzer immer klar, daß er durch einfaches Navigieren eine Auswahl ändert?
|
Re: PageControl-Seitenwechsel lößt immer OnEnter aus
Die Komboboxen zu den nicht ausgewählten RadioButtons disablen, dann können sie auch keinen Fokus erhalten.
Generell sollte man sowieso zuerst über einen RadioButton seine Auswahl tätigen und dann für diese Auswahl spezifische Einstellungen (in deinem Fall in der ComboBox) vornehmen und nicht umgekehrt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz