我设计了一个 Windows 窗体,将 textbox1
直接放置在窗体上,将 textbox2
放置在 goupbox1
上。运行下面的代码只会更改 textbox1
的文本。我用谷歌搜索了很多,但找不到解决方案。我怎样才能到达textbox2
?
public Form1()
{
InitializeComponent();
foreach (TextBox txtBox in this.Controls.OfType<TextBox>())
{
txtBox.Enter += textBox_Enter;
txtBox.Text = "123"; //To test if the text box is recognized or not
}
}
最佳答案
您可以使用递归。
我建议您使用以下扩展方法:
public static IEnumerable<T> GetAllControls<T>(Control control)
{
var controls = control.Controls.OfType<T>();
return control.Controls.Cast<Control>()
.Aggregate(controls, (current, c) => current.Concat(GetAllControls<T>(c)));
}
用法:
var textBoxes = GetAllControls<TextBox>(this);
关于c# - 如何访问组框中的文本框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32314850/