【发布时间】:2018-03-13 13:45:17
【问题描述】:
我需要大约 200 个按钮来充当不同颜色的指示器,并且我有一个包含真假的列表,我想知道是否有一种方法可以更新它们而无需编写 200 个按钮的名称。 像这样的:
while (servoNumber != numberOfServos)
{
if (Convert.ToBoolean(ListServo1Inputs[0 + inputToLookFor]) == true)
{
indicatorS1Di1.BackColor = Color.LawnGreen;
}
else
{
indicatorS1Di1.BackColor = Color.DarkGray;
}
}
但indicatorS1Di1.BackColor 也计数到循环中的下一行 S2。比如:indicatorS[increment number here]Di1.BackColor
也许这是一个简单的解决方案:
foreach (Control control in tabPage1.Controls.OfType<Button>())
{
MessageBox.Show(control.GetType().ToString());
if (control.Name first letters == "indicatorDi")
{
control.BackColor = Color.LawnGreen;
}
}
非常感谢兰德随机! 经过一些小的修改,这就是现在的样子:
【问题讨论】:
-
您是如何创建按钮的?
-
只是从工具箱中添加它们
-
您已经使用方案指示器S1Di1 (SxDix) 为按钮命名,因此您最多可以将它们命名为200 - 指示器S200Di200?或类似的东西?或者只是简单地说你的命名约定是什么?
-
到目前为止,我只添加了大约 20 个按钮并将它们命名为如上,但在此阶段可以更改任何内容。它的 s1di1、s1di2、s1di3 最多为 12,然后从 s2di1 重新开始,但正如我所说,如果它简化了其他内容,则可以更改。
-
看看我的编辑。
标签: c# dictionary button indicator