我正在尝试使用所有Button
正在使用的s 来填充数组Form1
.
Button[] ButtonArray = new Button[5];
ButtonArray[0] = button1;
ButtonArray[1] = button2;
ButtonArray[2] = button3;
ButtonArray[3] = button4;
ButtonArray[4] = button5;
Run Code Online (Sandbox Code Playgroud)
这段代码工作正常.但是,如果我有100个按钮,这是一个很长的过程.
Dmi*_*nko 16
如果所有Button
s都在表单上,您可以尝试使用Linq:
using System.Linq;
...
Button[] ButtonArray = Controls
.OfType<Button>()
.ToArray();
Run Code Online (Sandbox Code Playgroud)
编辑:如果您在组框,面板中有一些按钮(即不直接在窗体上,但在某种容器上),您必须将代码详细说明为
private static IEnumerable<Button> GetAllButtons(Control control) {
IEnumerable<Control> controls = control.Controls.OfType<Control>();
return controls
.OfType<Button>()
.Concat<Button>(controls
.SelectMany(ctrl => GetAllButtons(ctrl)));
}
...
Button[] ButtonArray = GetAllButtons(this).ToArray();
Run Code Online (Sandbox Code Playgroud)
请参见如何获取特定类型(按钮/文本框)的Windows窗体表单的所有子控件?详情
归档时间: |
|
查看次数: |
171 次 |
最近记录: |