Announcement

Collapse
No announcement yet.

Allgemeine Shortcut Keys

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Allgemeine Shortcut Keys

    Ich bin auf folgendes Problem gestossen:

    Auf einem Form-Element befinet sich eine UserControl mit verschiedenen Formular-Elementen (Label, TextBox, ComboBox, etc.)
    Wenn ich mich in dieser Maske befinde, möchte ich für eine bestimmte Taste (z. B. F4) eine bestimmte Funktion hinterlegen.

    Ich weiß, dass ich das KeyPress-Ereignis für einzelne Elemente abfangen kann. Das hilft mir aber in meinem Fall nicht, da dieses Event nur auftritt, wenn das entsprechende Element den Focus hat. Ich möchte aber, dass meine Funktion auf Tastendruck immer ausgeführt wird, egal welches Element gerade den Focus hat.

    Ich weiß auch, dass ich für MenuItems in einem MenuStrip ShortcutKeys hinterlegen kann. Ich könnte jetzt antürlich ein verstecktes MenuItem erzeugen und dafür einen ShortcutKey hinterlegen.
    Darauf möchte ich aber gerne verzichten. Gibt es eine Möglichkeit unabhängig von einem MenuItem eine Art allgemeinen ShortcutKey anzulegen?

  • #2
    Hallo,

    eigentlich geht das ganz einfach, auch ohne das versteckte MenuItem. Die Form selber hat eine Property namens "KeyPreview", die Du einfach auf true stellen solltest. Danach kannst Du zum Beispiel im KeyDown-Handler des Formulars auf F4 abfragen:

    Private Sub Form_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
    If e.KeyCode = Keys.F4 Then MsgBox("F4")
    e.Handled = True
    End Sub

    e.Handled = True bricht die Verarbeitung ab, der Tastendruck wird also nicht an das Steuerelement weitergegeben, welches den Fokus hat.

    Gruß, Jens Schlege

    Comment

    Working...
    X