是否有办法根据其他一些信息获取特定控件类型的所有实例。通常我会用;
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;
}
但这不会起作用,因为我事先并不知道我将寻找哪种控制类型。
答案 0 :(得分:0)
如果您只知道运行时的类型,那么您可以使用Type.IsInstanceOfType 而不是&#34;控制是T&#34;在你的例子中。该函数需要一个Type参数并返回一个IEnumerable&lt; Control&gt;。