Вы уверены, что элемент управления, чьи дочерние элементы, которые вы анализируете, на самом деле непосредственно содержит элементы Label
? Я подозреваю, что это дочерний элемент основного элемента управления, на котором размещаются метки, и в этом случае вам нужно рекурсивно искать в дереве пользовательского интерфейса, чтобы найти метки.
Что-то вроде:
public static IEnumerable<Label> DescendantLabels(this Control control)
{
return control.Controls.DescendantLabels();
}
public static IEnumerable<Label> DescendantLabels(this ControlCollection controls)
{
var childControls = controls.OfType<Label>();
foreach (Control control in controls)
{
childControls = childControls.Concat(control.DescendantLabels());
}
return childControls;
}