如何循环窗体中的所有按钮以在 C# 中更改其文本

本文关键字:按钮 文本 何循环 循环 窗体 | 更新日期: 2023-09-27 18:32:25

我是C#的新手,我使用Windows表单。我有 20 个buttons Form1button1button20)。

如何循环所有这 20 buttons并将其文本更改为例如"您好"文本?

有人知道如何实现这一目标吗?谢谢

如何循环窗体中的所有按钮以在 C# 中更改其文本

在表单代码后面的某个地方:

foreach(var btnControl in this.Controls.OfType<Button>())
{
    btnControl.Text = "Hello";
}

一个简单的循环将起作用,直到您将容器引入页面(分组框、选项卡等)。此时,您需要一个递归函数。

private void ChangeButtons(Control.ControlCollection controls)
{
    for (int i = 0; i < controls.Count; i++)
    {
        // The control is a container so we need to look at this control's
        // children to see if there are any buttons inside of it.
        if (controls[i].HasChildren)
        {
            ChangeButtons(controls[i].Controls);
        }
        // Make sure the control is a button and if so disable it.
        if (controls[i] is Button)
        {
            ((Button)controls[i]).Text = "Hello";
        }
    }
}

然后调用此函数传入窗体的控件集合。

ChangeButtons(this.Controls);