如何将UserControl转换为控件

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

我想做的是在我的Panel中获取所有UserControl并取回它们的值。 我尝试了此操作,但是我的程序未检测到任何ComboBoxes,因此表为空:

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吗?谢谢。

a745061941 回答:如何将UserControl转换为控件

这是伪代码(我假设您的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);
                }

            }
        }

非常感谢您!

本文链接:https://www.f2er.com/3064810.html

大家都在问