मुझे अपने फॉर्म पर प्रत्येक टेक्स्टबॉक्स की ऊंचाई सेट करने की आवश्यकता है, जिनमें से कुछ अन्य नियंत्रणों में घोंसला है। मैंने सोचा कि मैं ऐसा कुछ कर सकता हूं:
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;
}
}
}
इस तरह इसका उपयोग करना:
foreach(TextBox textBox in FindTextBoxes(this))
{
textBox.Height = height;
}
लेकिन निश्चित रूप से संकलक अपनी डमी थूकता है, क्योंकि foreach IEnumerator की बजाय IEnumerable की अपेक्षा करता है।
क्या GetEnumerator() विधि के साथ एक अलग वर्ग बनाने के बिना ऐसा करने का कोई तरीका है?