Hotkey für Windows Forms - Unterstrich wird nicht angezeigt

JJB

Cogito ergo brumm
Tach Tach !

Hat jemand ne Ahnung warum bei dem Hotkeys in Windows Forms mal ein Unterstrich angezeigt wird und mal nicht ?

Manchmal starte ich die Applikation und der Unterstrich am Button (zum Beispiel: &Start) wird angezeigt und ein anderes mal muss ich erst Alt drücken.
Woran liegt das ?

Jemand einen tip !

MFG JJB
 
Ach das war ernst gemeint ?.......

Also natürlich sind da & Zeichen. Dennoch wenn ich die Applikation starte, ist da ein Fenster und ein Button, aber der Unterstrich am ersten Buchstaben in dem ButtonText ist erst da, wenn ich ALT drücke...
Hab aber auch ein Projekt, bei dem das nicht so ist und der Unterstrich gleich da ist. Ich dachte mal es sei ein Effekt, des KeyPreview Parameters, hat aber doch keinen Einfluss, wie mir scheint.
 
Hab jetzt was gefunden.
In Windows gibt es eine Option die Unterstriche generell auszuschalten.
Und zwar in den Desktopeigenschaften im Tab "Darstellung" auf den Button "Effekte", an letzter Stelle.
Wenn man das Flag umschaltet geht es immer. Interessant

Ich habe in einer älteren Applikation zu Laufzeit ein Fenster geöffnet und der Unterstrich wird angezeigt, OBWOHL Windows diesen eigentlich verhindert. Aber nur an dieser Stelle finde ich die Unterstriche wieder. Irgendwie hab ich es wohl mal geschafft die Unterstriche zu erzwingen. werd mal nachbohren wie ich das geschafft habe. Vielleicht krieg ich das ja wieder raus.
 
Man kann in der Registry im Eintrag
HKEY_CURRENT_USER\Control Panel\Desktop
den Hex Wert für
"UserPreferencesMask"
ändern.

Der Defaultwert ist "9e 3e 00 80". Das enthält die Standardeinstellungen für die Oberfläche
Ändert man das in "be 3e 00 80", dann werden die Unterstriche nie ausgeblendet. Ist an sich besser für schnelle Bedienung.

ANMERKUNG:

Wird in der Registry "9e 3e 00 80" angezeigt, heißt das im mathematischen "0x80003e9e" (Bits werden anders herum gelesen). Ihr müsst das 5. Bit umschalten.

Noch genauer:
Der Defaultwert ("9e 3e 00 80") lautet: 10000000000000000011111010011110 (32 Bit)
Ihr macht daraus ("be 3e 00 80"): 10000000000000000011111010111110 (32 Bit)


Wenn man das in einer .Net Anwendung haben will. Muss man das vorher in der Registry einsetzen.
Soweit ich weiß geht das zur Laufzeit. Also brauch man auch keinen Neustart.

Soll es für alle Benutzer eingestellt werden, kann man ja statt
HKEY_CURRENT_USER\
auch
HKEY_USERS\.DEFAULT\
nehmen.

So.... den Thread kann man damit als geschlossen betrachten.

MFG JJB
 

Neue Beiträge

Zurück