面板的不同控件列表

时间:2012-12-04 09:03:43

标签: c# winforms controls panel

我有一个panel,其中包含控件。控件为buttonsprogressbars。我只想将按钮添加到list,我该怎么做?

foreach (Control item in panel1.Controls)
{
    //if (item.GetType() == typeof(ButtonControl))   //i tried this too...
    if ((item is ButtonControl) && (item.Tag.ToString() == "It's not important"))
    {                        
        panel1.BtnList.Add(item);
    }
}

此处ButtonControl是我自己的控件,它继承自Button类。

1 个答案:

答案 0 :(得分:0)

使用LINQ,您可以执行System.Windows.Forms.Button

List<Button> buttonList = panel1.Controls.OfType<Button>().ToList();

如果你想检查标签值,那么你可以

List<Button> buttonList = panel1.Controls.OfType<Button>()
                                         .Where(r => r.Tag.ToString() == "It's not important")
                                         .ToList();

编辑: 如果ButtonControl是您自己的班级,那么您可以这样做:

 List<ButtonControl> buttonList = panel1.Controls.OfType<ButtonControl>().ToList();