对于C#来说还很陌生,因此如果问题很简单或我遗漏了某些东西,请对不起。
我想对一堆按钮属性(Button.Text属性)进行分组,因为我有大量的按钮,并且想向所有按钮添加if语句。 (例如:如果text = message 1,则Button.Color = red)
因为我有很多按钮,只是想知道是否可以对文本属性进行分组,所以我只需要编写一次if语句,而不是为每个按钮编写一次。
下面的代码只是许多按钮之一的示例,并且如果按钮的文本可用,我想更改哪些属性...
{
using (var form = new Classroom())
{
form.ShowDialog();
b1111.BackColor = Color.Red;
b1111.Enabled = false;
b1111.Text = form.SelectedTemp;
}
}
答案 0 :(得分:1)
“对文本属性进行分组”听起来不像是对您要执行的操作的描述。您正在谈论对多个项目执行相同的操作,而这正是foreach
循环的用途:
foreach (Button btn in myButtonList)
{
if (btn.Text == someText)
{
btn.BackColor = Color.Red;
}
}
真正的问题是如何创建列表。您可以明确地做到这一点:
var myButtonList = new[] {Button1, Button2, Button3};
或者您可以将所有Buttons
放在特定的容器中:
var myButtonList = Controls.OfType<Button>().ToArray();
如果您只希望将Buttons
放在容器中,则可以过滤列表,如果有一些共同的特征可以识别它们,例如
var myButtonList = Controls.OfType<Button>()
.Where(btn => btn.Name.StartsWith("btn"))
.ToArray();