首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在固定时间内更改按钮的backColor?

如何在固定时间内更改按钮的backColor?
EN

Stack Overflow用户
提问于 2018-08-29 22:11:11
回答 1查看 48关注 0票数 1

当某个值来自串口时,我想在固定时间内更改ButtonBackColor。我在这里设置了Timer对象:

代码语言:javascript
复制
public formLabel()
{
    InitializeComponent();
    // ...
    timerColor.Tick += timerColor_Tick;
    timerColor.Interval = 3000;
}

然后,当我从串行端口接收信号时:

代码语言:javascript
复制
private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
    SerialPort sp = (SerialPort)sender;
    string indata = sp.ReadExisting();
    MessageBox.Show("Dati Ricevuti: " + indata);
    if (indata.CompareTo("K") == 0)
    {
        timerColor.Enabled = true;
        btnEsito.BackColor = Color.Green;
        btnEsito.Text = "GOOD";
        // Do something
    }
    if (indata.CompareTo("O") == 0)
    {
        timerColor.Enabled = true;
        btnEsito.BackColor = Color.Red;
        btnEsito.Text = "NO GOOD";
    }
}

下面是停止计时器的方法:

代码语言:javascript
复制
private void timerColor_Tick(object sender, EventArgs e)
{
    MessageBox.Show("HERE!");
    timerColor.Enabled = false;
    btnEsito.BackColor = Color.White;
}

根据我收到的信号类型,btnEsitoBackColor会变成绿色或红色,但程序不会显示消息"HERE!",按钮也不会返回白色。

有人能帮帮我吗?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52079525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档