winforms,循环组件

时间:2014-12-30 07:36:50

标签: c# winforms

我试图遍历表单上的组件,但组件似乎是null。 那么,我如何在表单上循环组件(NOT CONTROLS)?

public partial class FormBase : Form
{
    public FormBase()
    {
        InitializeComponent();
        FixVisualDesignerIssues();
    }

    protected void FixVisualDesignerIssues()
    {
        // this.components is always NULL ????????
        foreach (var comp in this.components.Components.OfType<BindingSource>())
        {
            ((BindingSource)comp).do something, whatever
        }
    }

按要求编辑

 public partial class FormBaseList : Test_app.FormBase
{
    public FormBaseList()
    {
        InitializeComponent();
    }


public partial class FormBaseDetail : Test_app.FormBase
{
    public FormBaseDetail():base()
    {
        InitializeComponent();
        gttDataGridView1.AutoGenerateColumns = false;
    }

1 个答案:

答案 0 :(得分:2)

如果您按以下方式创建BindingSource,则只有它才会包含在组件容器中。

BindingSource bindingSource1 = new BindingSource(components);

如果您使用任何其他方式创建绑定源,components容器中将没有任何内容。