-2

我想用一个计时器来帮助改变 flowLayoutPanel1 中包含的按钮的颜色。使用我的查询代码颜色改变正确,但是当查询条件变为假时,我的按钮不会改变他的颜色(当我创建它时我将颜色设置为绿色)。

这是我的代码:

private void timer1_Tick(object sender, EventArgs e)
{
    int t = 0;
    int st = 0;
    try
    {
        using (SqlConnection cn =new SqlConnection(VisualizzaOrdini.Form1.cnstr))
        {
            string strSql = "SELECT tavolo,stampa FROM Ordini";
            SqlCommand cmd = new SqlCommand(strSql, cn);
            cn.Open();
            using (SqlDataReader dr = cmd.ExecuteReader())
            {
                while (dr.Read())
                {
                    t = (int)dr["tavolo"];
                    st = (int)dr["stampa"];
                    foreach (Control c in flowLayoutPanel1.Controls)
                    {
                        if (st == 0)
                        {
                            if (c.Name == Convert.ToString(t))
                            {
                                c.BackColor = Color.Red;
                            }
                        }
                        else if (c.Name == Convert.ToString(t))
                        {
                            c.BackColor = Color.Green;
                        }
                    }
                }
            }
            cn.Close();
        }
    }
}
catch (Exception)
{
}

我需要在餐厅程序中实现这一点。如果它很忙,我想把它涂成红色,如果它有空,我想把它涂成绿色。

这是一张图片:

https://docs.google.com/file/d/0B-nMmszaCz8EVE9JdjlISHg1aDA/edit?usp=sharing

4

2 回答 2

0

如果您在 flowLayoutPanel1 代码中的 Panel 中的按钮不起作用

foreach (Control c in flowLayoutPanel1.Controls)
                    {
                        if (c is Panel)
                        {
                           //iterate through panel
                        }
                    }
于 2013-04-24T09:54:33.483 回答
0
foreach (Button button in flowLayoutPanel1.Controls)
{    
    if (button.Name == Convert.ToString(t))
    {
        if (st == 0)
        {
           button.BackColor = Color.Red;
        }                    
        else
        {
           button.BackColor = Color.Green;
        }
    }
}

此外,更改 foreach 循环以查找特定的按钮控件(或您可能正在使用的任何自定义控件),因为它当前将查看所有控件,无论它们是否是按钮

于 2013-04-24T09:32:35.033 回答