C#winform:从每个标签页访问用户控件中的控件

时间:2015-12-03 06:00:17

标签: c# winforms

我有一个用户控件,在这个控件中我有一堆文本框和标签。现在我已将此用户控件链接到另一个表单的选项卡控件。这是我正在使用的代码

TabPage tp  = new TabPage();
tp.Controls.Add(TipUserControl);
tp.Text = "Tab "+ tabctrl_Fields.TabCount + 1;
tabctrl_Fields.TabPages.Add(tp);

当我点击“添加另一个标签”按钮时,会执行上面的代码,并创建一个带有文本框的新标签页(类似于标签1)。

现在我要找的是当用户点击表单中的“完成”按钮(不在用户控件中)时,它应该能够循环遍历每个选项卡和每个控件(文本框,标签等)标签。任何人都可以建议如何编写此代码?

提前致谢, 斯瓦米

1 个答案:

答案 0 :(得分:0)

我会在您要搜索的控件中添加一个Tag并使用该方法: Ability to find WinForm control via the Tag property

private void FindTag(Control.ControlCollection controls)
{
    foreach (Control c in controls)
    {
        if (c.Tag != null)
        //logic

       if (c.HasChildren)
           FindTag(c.Controls); //Recursively check all children controls as well; ie groupboxes or tabpages
    }
}

或者通过Tab控件递归迭代