Laden...

Falsche Werte für Tastenkombinationen (Alt+Enter) in Form

Erstellt von CarolaA vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.128 Views
C
CarolaA Themenstarter:in
11 Beiträge seit 2012
vor 12 Jahren
Falsche Werte für Tastenkombinationen (Alt+Enter) in Form

Hallo alle zusammen!

Ich möchte zurzeit in einer Form gerne Alt + Enter drücken und dann soll etwas passieren.


private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Alt && e.KeyCode == Keys.Enter)
            {
            }
        }

Jedoch wird in KeyCode RButton| ShiftKey angezeigt, obwohl dort eigentlich die Nummer für die Enter-Taste sein sollte.

Kann mir vielleicht jemand sagen, was da los ist?

mfg CarolaA

D
96 Beiträge seit 2012
vor 12 Jahren

Ja, kann ich dir sagen. Wenn du dir mal die Enumwerte in Visual Studio ansiehst (Rechtsklick auf Keys und dann "Go to Definition") dann wirst du sehen, dass einige Tasten eine Kombination aus anderen sind. Das liegt daran, dass es zu viele verschiedene Keys gibt und deswegen können nicht alle ihren eigenen Bit bekommen.
Allerdings ist Keys.RButton | Keys.ShiftKey = Keys.Menu und nicht Keys.Enter. Das kann ich aber nicht erklären 🤔

C
CarolaA Themenstarter:in
11 Beiträge seit 2012
vor 12 Jahren

Weißt du vielleicht wie ich Alt+Enter überprüfen kann...

denn die oben gezeigte Version funktioniert nicht und sonst finde ich im Internet nicht wirklich etwas anderes!

D
96 Beiträge seit 2012
vor 12 Jahren

Jetzt seh ich ich warum das Keys.Menu ist. Ich habs einfach mal getestet und wenn ich Alt+Enter drücke, wird mein MenuStrip ausgewählt. Vielleicht solltest du mal versuchen Keys.Menu zu benutzen.

4.939 Beiträge seit 2008
vor 12 Jahren

Hallo CarolaA,

hast du denn KeyPreview auf 'true' gesetzt für deine Form?
Ansonsten kann es sein, daß 'Enter' z.B. von einem anderen Control 'geschluckt' wird.

Ansonsten ist deine Abfrage aber richtig.

P.S. Keys.Menu entspricht der Alt-Taste

C
CarolaA Themenstarter:in
11 Beiträge seit 2012
vor 12 Jahren

Hey..

@TH69:

KeyPreview ist auf true gesetzt. Aber die Überprüfung klappt trotzdem nicht, da immer der KeyCode für die Alt-Taste kommt, aber kein Stückchen für die Enter-Taste.

Und das blöde ist, man kann kein KeyPreview in einem UserControl setzten, wo ich es bräuchte!

D
96 Beiträge seit 2012
vor 12 Jahren

Ich hätte mal die Beschreibung von Keys.Menu lesen sollen. Da steht sogar, dass es die ALT-Taste ist. Wie dem auch sei, bei mir funktioniert der oben gezeigt Code, wenn KeyPreview auf true gesetzt ist.