快速切换控制返回颜色

本文关键字:返回 颜色 控制 | 更新日期: 2023-09-27 18:29:57

此代码只更改bg颜色一次。我需要添加什么才能使其工作?

 int i=0;
        while (i<50)
        {
            button1.BackColor = Color.White;
            Thread.Sleep(20);
            button1.BackColor = Color.Black;
            Thread.Sleep(20);
            i++;
        }

快速切换控制返回颜色

即使您将sleep参数更改为更大的参数,如果您在表单操作的同一线程(主线程)上操作,也不会看到任何更改,因为您正在阻塞主线程;相反,您应该使用另一个线程,或者只使用windows窗体的Timer组件。

    int i;
    public Form1()
    {
        InitializeComponent();            
        System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
        timer.Interval = 200;
        timer.Tick += new EventHandler(timer_Tick);
        this.BackColor = Color.White;
        timer.Start();
    }
    void timer_Tick(object sender, EventArgs e)
    {
        if (this.BackColor == Color.White)
            this.BackColor = Color.Black;
        else
            this.BackColor = Color.White;
    }