获取基于参数的控件类型的所有实例

本文关键字:控件 类型 实例 于参数 参数 获取 | 更新日期: 2023-09-27 18:07:28

是否有办法根据其他信息获取特定控件类型的所有实例?通常我会使用;

       public static IEnumerable<T> GetAllControlsOfType<T>(this Control parent) where T : Control
    {
        var result = new List<T>();
        foreach (Control control in parent.Controls)
        {
            if (control is T)
            {
                result.Add((T)control);
            }
            if (control.HasControls())
            {
                result.AddRange(control.GetAllControlsOfType<T>());
            }
        }
        return result;
    }

但是这行不通,因为我事先不知道我要寻找的控件类型。

获取基于参数的控件类型的所有实例

如果你只在运行时知道类型,那么你可以使用type。IsInstanceOfType而不是"控制是T"在你的例子。该函数需要一个Type形参并返回一个IEnumerable