【问题标题】:How to get PropertyGrid from TabPage Collection如何从 TabPage 集合中获取 PropertyGrid
【发布时间】:2012-11-28 00:31:02
【问题描述】:

我创建了 newPropertyGrid 并将其添加到 newTabPage。我将所有 newTabPage 保存到 lstTankTabPages(通用集合)。我想在属性网格中的数据更改以更改主窗体上的自定义控件时引发一个事件。 我的问题,如何从 lstTankTabPages 获取所有 newPropertyGrid?谢谢。

    for (int i = 0; i < Modules.tankQuantity; i++)
    {
        string name = string.Format("Tank{0}", i + 1);

        // create newTabPage
        TabPage newTabPage = new TabPage(name);
        newTabPage.Name = string.Format("tabPage{0}", name);

        // create newPropertyGrid 
        PropertyGrid newPropertyGrid = new PropertyGrid();
        newPropertyGrid.Name = string.Format("propertyGrid{0}", name);
        newPropertyGrid.BrowsableAttributes = new AttributeCollection(new DisplayModeAttribute("Ullage,Gross,Netto,Water,Temperature,Density,Capacity,Connection,Appearance"));
        newPropertyGrid.SelectedObject = new TankInventoryCustom();

        // add newPropertyGrid to newTabPage
        newTabPage.Controls.Add(newPropertyGrid);

        // add newTabPage to tabControl
        this.tabControlTankInventory.TabPages.Add(newTabPage);

        // add newTabPage to collection
        Modules.lstTankTabPages.Add(newTabPage);
    }

【问题讨论】:

    标签: c# winforms propertygrid tabpage generic-collections


    【解决方案1】:

    假设 Modules.lstTankTabPages 是一个

    List<TabPage>
    

    那么这是获取您在该循环中创建的 PropertyGrids 的一种方法

    foreach(TabPage page in Modules.lstTankTabPages) {
        PropertyGrid newPropertyGrid = (PropertyGrid)page.Controls[0];
        // do something with it
    }
    

    【讨论】:

      【解决方案2】:

      您可以使用“OfType”获取所有 PropertyGrid 项目

      foreach (TabPage page in Modules.lstTankTabPages)
      {
          PropertyGrid newPropertyGrid = page.Controls.OfType<PropertyGrid>().FirstOrDefault()
          if (newPropertyGrid != null)
          {
              // do something with it
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-28
        • 2011-09-18
        • 2015-12-11
        相关资源
        最近更新 更多