循环访问TabControl中的控件

Ses*_*ame 4 c# foreach loops tabcontrol winforms

我正在寻找一种方法来循环tabcontrol的特定选项卡上的控件.例如,我有一个带有以下选项卡的tabcontrol:

汽车,宠物,行政

在每个选项卡上都有几个控件来显示/编辑/保存数据等.在"保存"按钮上,我想循环浏览该特定选项卡的控件,以检查是否已填写所有必填字段.

因此,如果我在"汽车"选项卡上并单击"保存",我只想通过"汽车"选项卡上的控件循环,而不是"宠物"或"管理"选项卡.

怎么能达到这个效果?

Jos*_*eph 10

至于循环TabControl的控件,您需要使用Controls属性.

这是关于TabControl 的MSDN文章.

例:

        TabPage page = aTabControl.SelectedTab;

        var controls = page.Controls;

        foreach (var control in controls)
        {
            //do stuff
        }
Run Code Online (Sandbox Code Playgroud)


Gre*_*g D 8

我觉得重要的是要注意,一般来说,你应该对你的应用程序采取更有条理的方法.例如,不是在三个标签页上都有所有控件,而是在每个标签页上包含一个UserControl.A CarUserControl,PetUserControl等等,AdminUserControl然后每个用户控件都知道如何创建正确的相应数据结构,因此您不必使用inter-tab循环等等手动将它们全部放在同一抽象级别.

这种关注点的分离将使您更容易推理您的程序,并且是为您未来的职业编写可维护代码的良好实践.