清除Window中的所有TextBox
我用c#(WPF)编程。 我有很多nested controls
。 我想clear all
我的应用程序中的clear all
TextBox控件。 通过他们的名字访问它们非常困难。 有没有办法以recursively
方式访问它们并清除它们?
例如这样的事情:
public void ClearAll(Control c) { if(c is TextBox) { ((TextBox)c).Clear(); return; } foreach(Control child in GetChild(c)) { ClearAll(child); } }
VisualTreeHelper类非常方便。 你可以像这样使用它:
static public void TraverseVisualTree(Visual myMainWindow) { int childrenCount = VisualTreeHelper.GetChildrenCount(myMainWindow); for (int i = 0; i < childrenCount; i++) { var visualChild = (Visual)VisualTreeHelper.GetChild(myMainWindow, i); if (visualChild is TextBox) { TextBox tb = (TextBox)visualChild; tb.Clear(); } TraverseVisualTree(visualChild); } }