Trebuie să reglez înălțimea fiecărui câmp text pe formularul meu, dintre care unele sunt imbricate în cadrul altor controale. Am crezut că pot face așa ceva:
private static IEnumerator FindTextBoxes(Control rootControl)
{
foreach (Control control in rootControl.Controls)
{
if (control.Controls.Count > 0)
{
// Recursively search for any TextBoxes within each child control
foreach (TextBox textBox in FindTextBoxes(control))
{
yield return textBox;
}
}
TextBox textBox2 = control as TextBox;
if (textBox2 != null)
{
yield return textBox2;
}
}
}
Folosindu-l astfel:
foreach(TextBox textBox in FindTextBoxes(this))
{
textBox.Height = height;
}
Însă, desigur, compilatorul își scutește manechinul, deoarece foreach se așteaptă la un IEnumerabil , nu la un IEnumerator .
Există o modalitate de a face acest lucru fără a trebui să creați o clasă separată cu o metodă GetEnumerator() ?