我在基于数据库条目的表单上创建了许多按钮,它们工作得很好。这是创建它们的代码。如您所见,我给了他们一个标签:
for (int i = 0; i <= count && i < 3; i++)
{
btnAdd.Text = dataTable.Rows[i]["deviceDescription"].ToString();
btnAdd.Location = new Point(x, y);
btnAdd.Tag = i;
this.Controls.Add(btnAdd);
}
我使用这些按钮来可视化投票系统。例如,我希望按钮在一切正常时为绿色,而在出现问题时为红色。
所以我遇到的问题是稍后引用按钮,以便我可以更改它们的属性。我已经尝试过以下内容:
this.Invoke((MethodInvoker)delegate
{
// txtOutput1.Text = (result[4] == 0x00 ? "HIGH" : "LOW"); // runs on UI thread
Button foundButton = (Button)Controls.Find(buttonNumber.ToString(), true)[0];
if (result[4] == 0x00)
{
foundButton.BackColor = Color.Green;
}
else
{
foundButton.BackColor = Color.Red;
}
});
但无济于事......我试过改变语法,Controls.Find()
但仍然没有运气。有没有人遇到过这个问题或知道该怎么做?