Warum funktioniert folgender Code nicht?! (Wenn farbe grün + F1 gedrückt, dann soll farbe blau werden & wenn blau dann grün)

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von MemoAnMichSelbst.

    Warum funktioniert folgender Code nicht?! (Wenn farbe grün + F1 gedrückt, dann soll farbe blau werden & wenn blau dann grün)

    Warum funktioniert folgender Code nicht?

    If Button1.ForeColor = Color.DarkGreen And e.KeyCode = Keys.F1 Then
    Button1.ForeColor = Color.Blue
    Else
    End If

    If Button1.ForeColor = Color.Blue And e.KeyCode = Keys.F1 Then
    Button1.ForeColor = Color.Yellow
    Else
    End If
    Grundsätzlich: Fehlermeldung? Fehlerzeile?
    Was ist die Aufrufende Prozedur? Diese gibt "e" ja mit.
    Im Button Click gibts nämlich zB. kein e.KeyCode...

    EDIT:
    Da nix kommt nehme ich nun mal an.
    Du willst sicher die Farbe der Buttons ändern, wenn du irgendwo auf der FORM den Knopp F1 drückst.
    In diesem Fall... Hast du sicher KeyPreview (Designer) auf False (da das die Standardeinstellung ist).
    In diesem Fall wird das Event beim KeyDown auf der Form nicht so einfach ausgelöst.
    Und ich gehe davon aus du hast MyBase.KeyDown abgefangen und dort den Code von oben drinne.
    Also mach einfach im Designer der Form KeyPreview auf True. Aber ich weiß nicht was das noch so für Nebeneffekte hat!

    EDIT2:
    Schöner wäre es im Designer "HelpButton" auf True zu setzen und das Event Me.HelpButtonClicked abzufrühstücken.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „MemoAnMichSelbst“ ()

    Sry, war grade essen :D

    Ich habe keypreview auf True :)

    Im Grunde genommen will ich einfach, dass wenn der Buttontext grün ist und ich F1 drücke, er blau wird. Wenn er jedoch schon blau ist, soll er grün werden.
    Das funkt. mit dem Code aber leider ned...
    Also dann nochmal die Frage:
    Welches Event nutzt du?
    Kommt ne Fehlermeldung? Wenn ja, welche?
    Bei mir rennt das nämlich tadellos wenn ich in MyBase.KeyDown den Code verwurste (und die Farbe so gesetzt hab).
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D

    ILLEX schrieb:

    und ich F1 drücke
    Probier mal dies:

    VB.NET-Quellcode

    1. Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
    2. If e.KeyCode = Keys.F1 Then
    3. If Button1.ForeColor = Color.DarkGreen Then
    4. Button1.ForeColor = Color.Blue
    5. Else
    6. Button1.ForeColor = Color.DarkGreen
    7. End If
    8. End If
    9. End Sub
    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!
    Wieso nicht ElseIf?

    VB.NET-Quellcode

    1. Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
    2. If e.KeyCode = Keys.F1 Then
    3. If Button1.ForeColor = Color.DarkGreen Then
    4. Button1.ForeColor = Color.Blue
    5. ElseIf Button1.ForeColor = Color.Blue Then
    6. Button1.ForeColor = Color.DarkGreen
    7. End If
    8. End If
    9. End Sub
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford

    Vultrax schrieb:

    Wieso zwei If-Abfragen?

    Du hast auch zwei If-Abfragen :love:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Es wäre immernoch schön zu wissen welches Event du bislang nutztest.

    Wobei. hast du beide Codes im gleichen Event stehen gehabt?
    Also erst die Farbe in die Eine und direkt danach in die Vorherige zurückgewechselt?
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Dann hätte ich aber angenommen dass die Knöpfe von grün zu blau und dann zu gelb werden. Außer du hast da noch was verschludert.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Ups, das mit dem Gelb war nur ein Test ob es so funktionieren würde :P

    Das gehört sich weg, da hab ich wohl nicht richtig aufgepasst

    If Button1.ForeColor = Color.DarkGreen And e.KeyCode = Keys.F1 Then
    Button1.ForeColor = Color.Blue
    Else
    End If

    If Button1.ForeColor = Color.Blue And e.KeyCode = Keys.F1 Then
    Button1.ForeColor = Color.Darkgreen
    else
    end if


    ^ So habe ich vorher gemeint :P Sry
    Dann ist das Problem ja klar.
    Bei jedem F1 wurde dort die Farbe von Grün auf Blau und direkt danach wieder von Blau auf Grün gestellt.
    Also eher ein Logik als ein Programmierproblem.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D