Button Farbe nach Klicken ändern

  • C#
  • .NET (FX) 3.0–3.5

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

    Button Farbe nach Klicken ändern

    Hallo zusammen,
    ich habe einen ziemlich einfachen Code vorliegen

    C#-Quellcode

    1. private void button1_Click(object sender, EventArgs e)
    2. {
    3. button1.BackColor = Color.Green;
    4. }


    Allerdings möchte ich gerne, dass er täglich um 22:00 wieder auf Color.Red springt. Ist das möglich ?
    Liebe Grüße und Danke im voraus!
    Am einfachsten mit einem Timer.

    Es stellt sich allerdings die Frage ob du die Button-Farbe über die Lebenszeit des Programms hinaus persistieren möchtest.
    Also: Was soll passieren, wenn der Benutzer den Button um 10:00 Uhr klickt, um 10:30 das Programm schliesst und um 11:00 neu öffnet?
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Das Programm ist rund um die Uhr geöffnet :)

    Habe es mit deinem Timer Tipp wie folgt lösen können

    C#-Quellcode

    1. ​namespace WindowsFormsApp3
    2. {
    3. public partial class Form1 : Form
    4. {
    5. public Form1()
    6. {
    7. InitializeComponent();
    8. }
    9. private void button1_Click(object sender, EventArgs e)
    10. {
    11. button1.BackColor = Color.LimeGreen;
    12. timer1.Interval = 2000;
    13. timer1.Enabled = true;
    14. timer1.Tick += new EventHandler(timer1_Tick);
    15. }
    16. private void timer1_Tick(object sender, EventArgs e)
    17. {
    18. button1.BackColor = Color.Red;
    19. timer2.Enabled = true;
    20. timer1.Enabled = false;
    21. }
    22. }
    23. }


    Muss natürlich nur der Interval höher gesetzt werden.

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

    xandrosz schrieb:

    Muss natürlich nur der Interval höher gesetzt werden.
    Du kannst ihn auf eine Minute setzen und Im Tick-Event abfragen, ob schon 22:00 Uhr ist.

    Ich persönlich mache es immer so, dass ich mit in jedem Tick die Zeit berechne und das Intervall auf die Hälfte der Restzeit setze.
    Das hat zur Folge, dass die Ticks immer schneller kommen, je näher das Ende ist.
    Aber du kannst es auch weniger aufwendig gestalten.

    xandrosz schrieb:

    timer2.Enabled = true;
    Was macht der zweiote Timer?
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --