如何将UserControl转换为控件



我创建了一个带有Panel的程序,通过一个按钮,我可以将UserControl添加到Panel中。UserControl仅包含一个ComboList

我想做的是获取Panel中的所有UserControl,并获取它们的值。我试过了,但我的程序没有检测到任何组合框,所以表是空的:

private void button_add_outil_Click(object sender, EventArgs e)
{
// Récupère tous les élèves présents
List<string> eleve = new List<string>();
foreach (Control ctrl in panel_eleve.Controls)
{
if (ctrl is ComboBox)
{
ComboBox c = ctrl as ComboBox;
eleve.Add(c.SelectedText);
}
}
addOutil add_outil_window = new addOutil(eleve);
add_outil_window.ShowDialog();
}

有人知道如何将UserControl同时转换为Control吗?非常感谢。

这是伪代码(我假设您的UserControl是一个容器(,但正如我在评论中提到的,我认为您需要做以下操作:

// Récupère tous les élèves présents
List<string> eleve = new List<string>();
foreach (Control ctrl in panel_eleve.Controls)
{
if (ctrl is UserControl) // You may be able to be more specific with this type
{
foreach (Control innerControl in ctrl.Controls )
{
if (innerControl is ComboBox)
{
ComboBox c = innerControl as ComboBox;
eleve.Add(c.SelectedText);
}
}
}
}
addOutil add_outil_window = new addOutil(eleve);
add_outil_window.ShowDialog();

我的问题解决了这是经过一些修改的最终代码

foreach (Control ctrl in panel_eleve.Controls)
{
if (ctrl is UserControl_reponsable)
{
foreach (Control innerControl in ctrl.Controls)
{                     
ComboBox c = innerControl as ComboBox;
eleve.Add(c.Text);
}
}
}

非常感谢!!

最新更新