获取特定控件(控件列表)

本文关键字:控件 列表 获取 | 更新日期: 2023-09-27 18:03:08

我有一个控件列表,得到一个groupbox,其中有TextBox, ComboBox, CheckBox

当获得列表时,需要区分并获得我用这段代码测试的每个控件的名称。

private void btnGuardar_Click(object sender, EventArgs e)
    {
        List<Control> lstControles =
            new List<Control>(groupBox1.Controls.OfType<Control>().OrderBy(x => x.Name));
        TextBoxUniversal txt = new TextBoxUniversal();
        EntitySelectorCombo cbo = new EntitySelectorCombo();
        CheckBox chk = new CheckBox();
        foreach (var item in lstControles)
        {
             if(txt == item.Controls.OfType<TextBoxUniversal>())

             if (cbo == item.Controls.OfType<EntitySelectorCombo>())
             if (chk == item.Controls.OfType<CheckBox>())
        }

获取特定控件(控件列表)

您这样做是错误的(您的代码通过引用比较列表中的每个对象与新实例化的对象,这总是返回false结果)。

尝试使用is运算符检查对象类型兼容性:

foreach (var item in lstControles)
{
     if(item is TextBoxUniversal)
        .......
     if (item is EntitySelectorCombo)
        .......
     if (item is CheckBox)
        .......
}