Für Sie Massendateneingabe aufrufen zu bekommen betrachten sollte eine DataGrid
anstelle eines TextBox
mit - dies, weil in WinForms ist, Kontrollen sind teuer - sie sind individuell hWnd
Objekte von User32 verwaltet - so wird Ihre Form etwas träge sein, und langsam neu zu streichen wenn alle 100 Textfelder gleichzeitig auf dem Bildschirm angezeigt werden.
(In der Tat sollten Sie WPF für die Erstellung Ihrer UI verwenden, da es sich besser mit hoher DPI verhält und "fensterlose" hardwarebeschleunigte Grafik verwendet).
Wie auch immer, Sie wollen eine Tree-Traversal-Funktion, um alle Textfelder, wie in @ Muhammads Antwort abrufen, dann entfernen Sie sie. Ich nehme zur Kenntnis, dass Sie nicht direkt Mohammeds Antwort verwenden können, weil Sie nicht Steuerelemente entfernen können, wie Sie durch eine Steuer Sammlung laufen, so versuchen Sie dies:
public static IEnumerable<Control> GetDescendantControls(this Control control)
{
Stack<Control> stack = new Stack<Control>();
stack.Push(control);
while(stack.Count > 0)
{
Control c = nodes.Pop();
yield return c;
foreach(Control child in c.Controls) stack.Push(child);
}
}
List<Control> allEmptyTextBoxControls = this.GetDescendantControls()
.OfType<TextBox>()
.Where(c => String.IsNullOrWhitespace(c.Text))
.ToList();
foreach(Control c in allEmptyTextBoxControls) c.Parent.Controls.Remove(c);
[Ich habe 100 Textfelder auf einem Formular] (http: //i.stack. imgur.com/fvdkb.png) – Plutonix
Ich verspreche es. Es ist nicht so. Überhaupt! Ich glaube fest an eine nette, saubere Benutzeroberfläche. Obwohl es so scheint. –