Когда я делаю что-то вроде этого:
public static void BindData<T>(this System.Windows.Forms.Control.ControlCollection controls, T bind)
{
foreach (Control control in controls)
{
if (control.GetType() == typeof(System.Windows.Forms.TextBox) || control.GetType().IsSubclassOf(typeof(System.Windows.Forms.TextBox)))
{
UtilityBindData(control, bind);
}
else
{
if (control.Controls.Count == 0)
{
UtilityBindData(control, bind);
}
else
{
control.Controls.BindData(bind);
}
}
}
}
private static void UtilityBindData<T>(Control control, T bind)
{
Type type = control.GetType();
PropertyInfo propertyInfo = type.GetProperty("BindingProperty");
if (propertyInfo == null)
propertyInfo = type.GetProperty("Tag");
// rest of the code....
где элементы управления System.Windows.Forms.Control.ControlCollection
и среди элементов управления в форме, передаваемой в качестве параметра этому коду, есть NumericUpDowns, я не могу найти их в коллекции элементов управления (controls = myForm.Controls), но есть элементы управления других типов (кнопка обновления, updownedit). Проблема в том, что я хочу получить свойство Tag NumericUpDown и просто не могу получить его при использовании этого рекурсивного метода проверки элементов управления формы.