1

panelコントロール付きのがあります。コントロールはとbuttonsですprogressbars。ボタンだけをに追加したいのですが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

4

1 に答える 1

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();
于 2012-12-04T09:05:57.643 に答える