如何访问组框中的文本框?

时间:2015-08-31 15:32:09

标签: c# winforms hierarchical

我设计了一个窗口表单,其中textbox1直接放在表单上,​​textbox2放在goupbox1上。在代码下方运行只会更改textbox1的文字。我google了很多,但我找不到解决方案。我怎样才能到达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
    }
}

1 个答案:

答案 0 :(得分:2)

您可以使用递归 我建议您使用以下扩展方法:

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);