如何将 UserControl 转换为控件

How to convert a UserControl into control

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

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

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);
                }

            }
        }

非常感谢!!