Warum reagiert das KeyDown-Event nicht?

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Fose.

    Warum reagiert das KeyDown-Event nicht?

    Hiiillfeee!
    Ich hab mir jetzt locker milionen Tutorials angesehen, doch irgendwie funktioniert's bei denen und bei mir nicht D:
    Bin am verzweifeln
    Der Nutzer hat vorher die Wahl eine Taste aus zu wählen (wird in "Starter" gespeichert),
    beim drücken der angegebenen Taste sollte eigentlich die MsgBox kommen... tut sie aber nicht.

    VB.NET-Quellcode

    1. Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
    2. 'f1
    3. If Starter = "F1" And e.KeyCode = Keys.F1 Then
    4. If active = False Then
    5. active = True
    6. MsgBox("Fehlercode:404 Wir sind noch am bauen :D")
    7. Else
    8. active = False
    9. End If
    10. 'f2
    11. ElseIf Starter = "F2" And e.KeyCode = Keys.F2 Then
    12. If active = False Then
    13. active = True
    14. MsgBox("Fehlercode:404 Wir sind noch am bauen :D")
    15. Else
    16. active = False
    17. End If
    18. 'f3
    19. ElseIf Starter = "F3" And e.KeyCode = Keys.F3 Then
    20. If active = False Then
    21. active = True
    22. MsgBox("Fehlercode:404 Wir sind noch am bauen :D")
    23. Else
    24. active = False
    25. End If
    26. 'f4
    27. ElseIf Starter = "F4" And e.KeyCode = Keys.F4 Then
    28. If active = False Then
    29. active = True
    30. MsgBox("Fehlercode:404 Wir sind noch am bauen :D")
    31. Else
    32. active = False
    33. End If
    34. 'f5
    35. ElseIf Starter = "F5" And e.KeyCode = Keys.F5 Then
    36. If active = False Then
    37. active = True
    38. MsgBox("Fehlercode:404 Wir sind noch am bauen :D")
    39. Else
    40. active = False
    41. End If
    42. 'f6
    43. ElseIf Starter = "F6" And e.KeyCode = Keys.F6 Then
    44. If active = False Then
    45. active = True
    46. MsgBox("Fehlercode:404 Wir sind noch am bauen :D")
    47. Else
    48. active = False
    49. End If
    50. 'f7
    51. ElseIf Starter = "F7" And e.KeyCode = Keys.F7 Then
    52. If active = False Then
    53. active = True
    54. MsgBox("Fehlercode:404 Wir sind noch am bauen :D")
    55. Else
    56. active = False
    57. End If
    58. 'F8
    59. ElseIf Starter = "F8" And e.KeyCode = Keys.F8 Then
    60. If active = False Then
    61. active = True
    62. MsgBox("Fehlercode:404 Wir sind noch am bauen :D")
    63. Else
    64. active = False
    65. End If
    66. 'F9
    67. ElseIf Starter = "F9" And e.KeyCode = Keys.F9 Then
    68. If active = False Then
    69. active = True
    70. MsgBox("Fehlercode:404 Wir sind noch am bauen :D")
    71. Else
    72. active = False
    73. End If
    74. 'F10
    75. ElseIf Starter = "F10" And e.KeyCode = Keys.F10 Then
    76. If active = False Then
    77. active = True
    78. MsgBox("Fehlercode:404 Wir sind noch am bauen :D")
    79. Else
    80. active = False
    81. End If
    82. 'F11
    83. ElseIf Starter = "F11" And e.KeyCode = Keys.F11 Then
    84. If active = False Then
    85. active = True
    86. MsgBox("Fehlercode:404 Wir sind noch am bauen :D")
    87. Else
    88. active = False
    89. End If
    90. 'F12
    91. ElseIf Starter = "F12" And e.KeyCode = Keys.F12 Then
    92. If active = False Then
    93. active = True
    94. MsgBox("Fehlercode:404 Wir sind noch am bauen :D")
    95. Else
    96. active = False
    97. End If
    98. End If
    99. ENd Sub

    Hoffe einer kann mir helfen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Fose“ ()

    active = !active hilft. Jedenfalls dem Code.
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    ich finde ühaupt keine Frage in post#1.

    Wie soll man helfen, wenn man garnet weiß, was das Problem ist?

    Ich stell mich da sogar immer besonders doof, weil das halte ich für eine besonders gute Hilfe, dem Fragesteller dazu zu bringen, sein Problem vernünftig zu definieren.
    Weil eine gute Problemdefinition ist mehr als die Hälfte der Lösung.

    so in die Richtung: Fragen sinnvoll stellen
    Hej @Fose.
    Ich habe mir mal erlaubt, deinen Code zu überarbeiten.

    VB.NET-Quellcode

    1. Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
    2. 'F1
    3. If Starter = "F1" AndAlso e.KeyCode = Keys.F1 Then
    4. If Not active Then
    5. MessageBox.Show("Fehlercode:404 Wir sind noch am bauen :D")
    6. End If
    7. 'F2
    8. ElseIf Starter = "F2" AndAlso e.KeyCode = Keys.F2 Then
    9. If Not active Then
    10. MessageBox.Show("Fehlercode:404 Wir sind noch am bauen :D")
    11. End If
    12. 'F3
    13. ElseIf Starter = "F3" AndAlso e.KeyCode = Keys.F3 Then
    14. If Not active Then
    15. MessageBox.Show("Fehlercode:404 Wir sind noch am bauen :D")
    16. End If
    17. 'F4
    18. ElseIf Starter = "F4" AndAlso e.KeyCode = Keys.F4 Then
    19. If Not active Then
    20. MessageBox.Show("Fehlercode:404 Wir sind noch am bauen :D")
    21. End If
    22. 'F5
    23. ElseIf Starter = "F5" AndAlso e.KeyCode = Keys.F5 Then
    24. If Not active Then
    25. MessageBox.Show("Fehlercode:404 Wir sind noch am bauen :D")
    26. End If
    27. 'F6
    28. ElseIf Starter = "F6" AndAlso e.KeyCode = Keys.F6 Then
    29. If Not active Then
    30. MessageBox.Show("Fehlercode:404 Wir sind noch am bauen :D")
    31. End If
    32. 'F7
    33. ElseIf Starter = "F7" AndAlso e.KeyCode = Keys.F7 Then
    34. If Not active Then
    35. MessageBox.Show("Fehlercode:404 Wir sind noch am bauen :D")
    36. End If
    37. 'F8
    38. ElseIf Starter = "F8" AndAlso e.KeyCode = Keys.F8 Then
    39. If Not active Then
    40. MessageBox.Show("Fehlercode:404 Wir sind noch am bauen :D")
    41. End If
    42. 'F9
    43. ElseIf Starter = "F9" AndAlso e.KeyCode = Keys.F9 Then
    44. If Not active Then
    45. MessageBox.Show("Fehlercode:404 Wir sind noch am bauen :D")
    46. End If
    47. 'F10
    48. ElseIf Starter = "F10" AndAlso e.KeyCode = Keys.F10 Then
    49. If Not active Then
    50. MessageBox.Show("Fehlercode:404 Wir sind noch am bauen :D")
    51. End If
    52. 'F11
    53. ElseIf Starter = "F11" AndAlso e.KeyCode = Keys.F11 Then
    54. If Not active Then
    55. MessageBox.Show("Fehlercode:404 Wir sind noch am bauen :D")
    56. End If
    57. 'F12
    58. ElseIf Starter = "F12" AndAlso e.KeyCode = Keys.F12 Then
    59. If Not active Then
    60. MessageBox.Show("Fehlercode:404 Wir sind noch am bauen :D")
    61. End If
    62. End If
    63. active = !active
    64. End Sub


    Grüße
    Väinämö
    @Fose Gib Deiner Form KeyPreview = True.
    Feddich. :D
    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!