如何循环窗体中的所有按钮以在 C# 中更改其文本
本文关键字:按钮 文本 何循环 循环 窗体 | 更新日期: 2023-09-27 18:32:25
我是C#的新手,我使用Windows表单。我有 20 个buttons
Form1
(button1
到 button20
)。
如何循环所有这 20 buttons
并将其文本更改为例如"您好"文本?
有人知道如何实现这一目标吗?谢谢
在表单代码后面的某个地方:
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);