HotKey Mit Combobox bestimmen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von GodSec.

    HotKey Mit Combobox bestimmen

    Hallo alle miteinander ^^
    Ich habe zurzeit ein kleines Problem. Und habe ich jetzt in meinem Programm Globale Hotkeys eingebaut und es funktioniert auch echt super.
    Doch jetzt möchte ich das man die Möglichkeit hat aus einer Liste(Combobox oder ähnliches) auswählen kann welcher Key verwendet wird.
    Die Globalen Hotkeys sind auf Basis von mikeb69 (Systemweiten Hotkey registrieren (kein Tastatur Hook))

    VB.NET-Quellcode

    1. 'die tab taste abfangen
    2. RegisterHotKey(Me.Handle, 1, Key_NONE, Keys.F10)

    So jetzt möchte ich eigendlich nur Keys.F10 durch das Item aus der Combobox austauschen.
    Ich könnte das sicher durch ein unschönen If Code machen aber vlt hat einer von euch eine bessere Idee.

    LG
    GodSec :thumbsup:

    GodSec schrieb:

    das Item aus der Combobox
    wäre dann genau was?
    ComboBox-Items sind vom Typ Object, Du musst sie ggf. in den richtigen Typ konvertieren:

    VB.NET-Quellcode

    1. Dim variableNeu = DirectCast(DEIN_ITEM, DEIN_TYP)
    Beispiel:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim btn = DirectCast(sender, Button)
    3. End Sub
    btn ist eine Variable vom Typ Button.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany
    Naja in der Combobox sind grade nur Text werte. Tut mir leid ich bin da noch nicht so fit.
    Ich möchte eigentlich nur das der Code herausfindet welches Item grade ausgewählt ist und wenn es (z.B.) F11 ist wird der Variable ShortKey der wert 121 (as Integer) zugeteilt. wenn F10 halt der Wert 120 und so weiter...
    Hoffe das war verständlich.

    GodSec schrieb:

    F11 ist wird der Variable ShortKey der wert 121 (as Integer) zugeteilt
    Dann mach Dir ein Dictionary(Of String, Integer):

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private dct As New Dictionary(Of String, Integer)
    3. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    4. dct.Add("F10", 120)
    5. dct.Add("F11", 121)
    6. Me.ComboBox1.Items.AddRange(dct.Keys.ToArray)
    7. End Sub
    8. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    9. If Me.ComboBox1.SelectedIndex = -1 Then
    10. Return
    11. End If
    12. MessageBox.Show(dct(Me.ComboBox1.SelectedItem.ToString).ToString)
    13. End Sub
    14. End Class
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!