2009-05-11 6 views
1

in meiner C#/Winforms-Anwendung möchte ich so etwas wie Anwendung breiten Tastaturkürzeln, die überall ausgelöst werden sollte, außer wenn der Fokus in einem Steuerelement wo der Benutzer ist kann Text wie ein Textfeld bearbeiten.C#/winforms: Anwendung breite Tastaturkürzel mit Ausnahme auf bearbeitbare Steuerelemente

Derzeit überschreibe ich diese Funktion, um dies zu tun.

Wie kann ich eine Ausnahme hinzufügen, die nicht ausgelöst wird, wenn sich der Benutzer in einem bearbeitbaren Steuerelement befindet?

danke!

Antwort

1

Ich sehe 2 Lösungen hier.

1) Behandeln Sie in allen bearbeitbaren Steuerelementen alle Tastaturereignisse, und legen Sie im EventArgs-Objekt die Handled-Eigenschaft auf true fest.

e.Handled = wahr;

2) Bevor Sie die breite Tastenkombination ausführen, suchen Sie nach dem Steuerelement, das den Fokus hat, und wenn es eine TextBox ist, ignorieren Sie es. Es gibt wahrscheinlich eine Methode in jedem Formular, um zu bestimmen, worauf Control den Fokus legt.

Die zweite Option ist sauberer. Ich gebe keinen Code, da ich Visual Studio momentan nicht geöffnet habe, aber wenn Sie spezifischeren Code benötigen, können Sie fragen.

PS: hier, ich habe für Sie einige googeln: How to Get FOcused Control?

+0

Dank! zweite Version ist gut! – clamp

Verwandte Themen