Hallo Gemeinde,
ich habe eine Windows Forms Anwendung und möchte ihr ein änliches Verhalten verpassen wie z.B. dem Windows Explorer.
d.h.
Das Form hat keinen Focus.
Ich klicke auf einen Button oder ein ToolStripMenueItem oder auch auf einen ColumnHeader in einer Listview.
Im Explorer bekommt das Form den Focus und das Control wird "geklickt".
In meinem Prgoramm bekommt das Form den Focus aber ich muss nochmal klicken um das Click-Event des Controls auszulösen.
Die Frage ist nun also wie kann ich dieses Verhalten ändern?
Ich habe mir überlegt das Activated Event des Forms abzufangen und dann die Position des Mauszeigers zu ermitteln.
Die Idee habe allerdings wieder verworfen denn dann würde auch ein Click ausgelöst wenn man zb mit ALT+TAB in das Fenster wechselt oder es von der Task-Leiste wiederherstellt.
Ich hoffe auf Vorschläge oder noch besser Lösungen 😉
Vielen Dank für Euere Hilfe.
Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)
Das hat mich auch schon oft genervt. Man meint man klickt, weil das Fenster sichtbar ist und dabei hat es den Fokus nicht.
Andrerseits wärs auch andersrum der Fall. Man will nur das Fenster durch Klick irgendwohin in den Vordergrund holen und löst dabei aber schon eine Aktion aus. Wär auch nicht so wünschenswert.
Von daher würd ich mir überlegen ob du dieses Verhalten wirklich mit allen Konsequenzen und der Abweichung vom gewohnten Verhalten ändern möchtest.
Danke für deine Antowort chilic
ich bin mir der Konsequenzen bewusst und möchte dieses Verhalten dennoch erreichen
Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)
Hallo j3$u5,
ich habe es gerade ausprobiert: Neues Form erstellen, Button drauf, Click-EventHandler hinzufügen, starten, anderes Fenster aktivieren, auf Button klicken ==> Aktion wird sofort ausgeführt. Zugegen, ich habe Windows 2000. 😃 Aber das spricht für Betriebssystemverhalten/-einstellung.
herbivore
Hallo j3$u5,
habe es auch mit einem eigenen Programm unter Windows 7 versucht und den Fokus auf ein anderes programm gesetzt. Beim Click auf ein Control wurde das Click-Event direkt ausgeführt.
Welches System hast Du denn?
Gruß, Karl
Hallo und danke für Eure Antworten,
ich benutze Win7 Prof. läuft auf meiner Kiste
das kann ich nun überhaupt nicht verstehen....
ich hab es mit den Einstellungen "Für optimale Anzeige" und für "optimale Leistung" ausprobiert und habe imme das selbe Ergebnis
Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)
Auch Win7 Prof hier, selbes Vorgehen wie herbivore beschrieben hat - funktioniert wunderbar.
Hallo,
nach ausgibiegem Testen bin ich zu vollgendem Schluss gekommen:
Steuerelemente wie Listview, Button, Combobox usw. sind direkt zugreifbar
Steuerelemente wie MenuStrip oder ToolStrip sind dies nicht
Lösung:
Man Impementiert den MouseEnter EventHandler und gibt in diesem dem jeweiligen Steuerelement durch aufrufen der Methode Focus() den Focus. Das andere Geöffnete Form verliert dadurch seinen Focus nicht aber beim ersten Click auf eines der obgen genannten Steuerelmente wird die gewünschte Aktion sofort ausgeführt.
Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)