2016-09-26 11 views
-1

Wenn die Schaltfläche angeklickt wird, möchte ich die Farbe der Schaltfläche nach 5 Sekunden in schwarz ändern, aber ich kann es einfach nicht funktionieren. Ich habe das Intervall des Timers in der Eigenschaft bereits auf 5000 und Enabled auf true festgelegt.Visual Studio C# -Timer funktioniert nicht

using System; 
using System.Drawing; 
using System.Windows.Forms; 

namespace WindowsFormsApplication4 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 


     private void button1_Click(object sender, EventArgs e) 
     { 
      timer1.Enabled = true; 
      timer1.Start(); 

      button1.BackColor = Color.Black; 
     } 

     private void timer1_Tick(object sender, EventArgs e) 
     { 

     } 
    } 
} 
+0

Welche Timer verwenden Sie? Sie sollten einen Windows.Forms.Timer verwenden. Es sieht so aus, als hätten Sie es in der Entwurfszeit hinzugefügt. Stellen Sie sicher, dass sich die Aktion, die Sie verzögern möchten, im Tick-Ereignis befindet. –

Antwort

2

Beste soultion wäre,

private void button1_Click(object sender, EventArgs e) 
     {    
      Timer MyTimer = new Timer(); 
      MyTimer.Interval = 4000; 
      MyTimer.Tick += new EventHandler(MyTimer_Tick); 
      MyTimer.Start(); 

     } 

     private void MyTimer_Tick(object sender, EventArgs e) 
     { 
      button1.BackColor = Color.Black; 

     } 
+0

Danke !! Deine Lösung funktioniert! – bubibu

+0

@bubibu können Sie es als Antwort markieren – Sajeetharan

2

Wenn Sie die Farbe wollen Schwarz ändern, und so bleiben, nach 5 seconds, müssen Sie die Zuordnung von button1.BackColor im timer1_Tick Ereignishandler platzieren. Vergiss nicht, den Timer anzuhalten.

private void timer1_Tick(object sender, EventArgs e) 
{ 
     button1.BackColor = Color.Black; 
     timer1.stop(); 
} 
1

Try this:

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void timer1_Tick(object sender, EventArgs e) 
    { 

     button1.BackColor = Color.Black; 
     timer1.Stop(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     timer1.Enabled = true; 
     timer1.Interval = 5000; 
     timer1.Start(); 


    } 
} 

Sie haben den Abzug der schwarzen Hintergrundfarbe der Schaltfläche auf Platz auf der tick-Ereignis des Timer.

+0

Ich denke, ein 'timer1.Stop();' in Tick-Ereignis setzen wird groß sein – Eric

+0

In der winforms-Timer, aktivieren und starten beide das gleiche tun. –

+0

Ich stimme zu. Damit soll sichergestellt werden, dass der Timer nur einmal ankreuzen würde :) Wird meine Antwort aktualisiert. – Jayson

0

schreiben die Farbe zu ändern Code innerhalb timer_tick Ereignis

private void timer1_Tick(object sender, EventArgs e) 
    { 
     button1.BackColor = Color.Black; 
     timer1.Enabled = false; 
    } 
Verwandte Themen