在面板中读取控件

本文关键字:读取 控件 | 更新日期: 2023-09-27 17:51:18

我有下面的代码来读取面板中一些checklistbox对象的所有项。在这个面板中还有一些其他控件,比如标签。在正确阅读了一些项目后,我出现了一个错误。你能帮我改一下代码吗?提前谢谢你。

    foreach (CheckedListBox chb in PanelControls.Controls)
    {
        foreach (var itm in chb.Items)
        {
            MessageBox.Show(itm.ToString());
        }
    }

错误:无法强制转换类型为"System.Windows.Forms"的对象。System.Windows.Forms.CheckedListBox

在面板中读取控件

使用

PanelControls.Controls.OfType<CheckedListBox>()

您需要确保当前控件实际上是CheckListBox

这样就足够了:

foreach (Control c in PanelControls.Controls) 
{ 
  if (c is CheckListBox) 
  { 
   // Do your actions
  }
}

或者像这样的东西也可以帮助你:

foreach (var control in PanelControls.Controls.OfType<CheckListBox>())
{
   ...
}

您现在只遍历实际上是CheckListBox的控件。