如何将 UserControl 转换为控件
How to convert a UserControl into control
我创建了一个带有 Panel
的程序,我可以通过一个按钮将 UserControl
添加到 Panel
。 UserControl
只包含一个 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);
}
}
}
非常感谢!!
我创建了一个带有 Panel
的程序,我可以通过一个按钮将 UserControl
添加到 Panel
。 UserControl
只包含一个 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);
}
}
}
非常感谢!!