分组多个按钮属性

时间:2018-10-24 02:04:28

标签: c#

对于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;
        }
    }

1 个答案:

答案 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();