Hallo liebe Community!
Ich habe folgende Funktion:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (Control.ModifierKeys != Keys.LControlKey)
{
if (Control.ModifierKeys != Keys.Alt)
{
switch (e.KeyCode)
{
case Keys.N:
anzeigeFkt();
break;
case Keys.Add:
neueNotiz();
break;
}
}
}
}
Mein Problem: Wenn ich STRG + ALT gedrückt habe und ich lasse die Tasten los, dann sind sie trotzdem selektiert irgendwie, weil wenn ich dann auf "N" drücke ohne vorher STRG + ALT gedrückt zu haben, werden meine Anweisungen ausgeführt.
Jetzt meine Frage: Wie bekomme ich dieses unerwünschte "Phänomen" wieder weg oder anders wie deselektiere ich die Tasten wieder, wenn ich sie loslasse. Ich bin für jeden Vorschlag offen und ich erwarte keinen vollständigen Code.
Ich bedanke mich schon mal im Voraus!
Gruß Trekki 🙂
Edit: dazu sollte ich vllt erwähnen, dass ich die "UserActivityHook.cs" Klasse verwende.
EDIT: @gfoidl: Natürlich.... Verdammt, daran habe ich nicht gedacht...
Außerdem kann man die Bedingungen schöner verpacken 😉
Ich weiß das sieht doof aus.
Wenn da aber == steht passiert gar nichts wenn ich die Tasten drücke. 🤔
Hallo Trekki1990,
deine Anfrage tut einfach nicht, was sie soll. Auf gut Glück == durch != zu ersetzen, macht es nicht besser. Da du nicht der erste bist, der auf eine Kombination von Taste und Modifier-Taste abfragen will, wirst du haufenweise Codebeispiele im Netz oder sogar in der MSDN finden, die zeigen wie das geht.
herbivore
Hallo,
vielleicht als direkter Hinweis:
Die Tastenkombination ist eine bitweise Kombination der Flags.
Mit dieser Info dürfte es kein Problem mehr sein etwas zu finden 😉
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"