winforms 在C# windows窗体应用程序中,是否有一种方法可以使用整数访问按钮?

snvhrwxg  于 2022-11-17  发布在  C#
关注(0)|答案(2)|浏览(119)

我有一个数组,在其中存储按钮的数量,但我想使用一个检查函数:

void check()
{
    if (counter == 2)
    {
        System.Threading.Thread.Sleep(200);
        if ((buttons[0] == 1 && buttons[1] == 6) || (buttons[0] == 6 && buttons[1] == 1))
        {
            button1.BackgroundImage = null;
            button6.BackgroundImage = null;
        }
        buttons[0] = 0;
        buttons[1] = 0;
        counter = 0;
   }
}

所以我想知道,有没有一种方法,可以设置背景图像,而不需要像这样声明?比如像buttons[0].buttons.BackGroundImage = null;或者有没有一种实际的方法可以做到这一点?
感谢您的解答!

z31licg0

z31licg01#

您可以将所有Button对象放在一个列表中:
定义成员变量:

List<Button> buttonsList;

然后用实际的Button(设计器创建的对象)填充它:

buttonsList.Add(button1);
// ...
buttonsList.Add(button6);
// ...

现在,按钮编号将与列表中的索引相关联(在该特定示例中,将存在偏移1,因为第一个Buttonbutton1,而不是button0)。
因此,您可以直接更改Button属性,方法如下(对于第一个按钮):

buttonsList[0].BackGroundImage = null;
idv4meu8

idv4meu82#

若要获取按钮数组,请筛选Form.Controls属性

Button[] button = this.Controls.OfType<Button>().ToArray();

你就可以做button[0].Visibility = false;之类的事情。

相关问题