2009-07-23 5 views
1

Ich habe ein ziemlich kniffliges Problem, das ich versuchen werde, so gut wie möglich zu erklären. Das Steuerelement ist eine von Grund auf neu erstellte Textbox. Es erbt von System.Windows.Forms.Control.ALT + <shortcut> vorangestellt KeyPress Ereignisse auf benutzerdefinierten Textbox Winform Steuerelement

Jetzt, auf dem Formular, habe ich ein paar andere Steuerelemente mit der & Verknüpfung (ALT +).

Wenn ein Steuerelement ohne Eingabe in Winforms fokussiert ist, können Sie ALT in diesen Verknüpfungen ausschließen und einfach die Taste drücken. Das ist genau das gleiche Verhalten, das ich mit meiner Textbox erlebe.

Das Ergebnis ist, dass vor dem Auslösen des KeyPress-Ereignisses der Fokus auf ein anderes Steuerelement verschoben wird und KeyPress nie ausgelöst wird. Das KeyDown-Ereignis wird jedoch ausgelöst.

Ich habe das Gefühl, dass meine Kontrolle nicht als Eingabesteuerung erkannt wird.

Ein weiterer interessanter Punkt ist, dass wenn ich gesetzt SuppressKeyPress = true während des KeyDown-Ereignis, der Fokus auf meiner Kontrolle bleibt, aber natürlich das KeyPress-Ereignis wird auch nicht gefeuert.

+0

Worauf basiert Ihr benutzerdefiniertes Textfeldsteuerelement? Steuerung? TextBoxControl? Etwas anderes? – joshlrogers

+0

Erbt von System.Windows.Forms.Control wie oben angegeben. Ich habe es geschafft, das mit einem Hack zu umgehen, aber ich würde eine elegantere Lösung bevorzugen. –

Antwort