我创建了一个带有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);
}
}
}
非常感谢!!