C# 清除控件内的文本框
我有一系列的选项卡,其中包含文本框。有些选项卡还有一个控件,该控件在滚动视图中包含文本框。我正在尝试遍历选项卡并清除文本框的内容 我打算用这个:C# 清除控件内的文本框,c#,wpf,wpf-controls,C#,Wpf,Wpf Controls,我有一系列的选项卡,其中包含文本框。有些选项卡还有一个控件,该控件在滚动视图中包含文本框。我正在尝试遍历选项卡并清除文本框的内容 我打算用这个: foreach(TabItem item in Tabs.Items) { ClearTextBoxes(this); } 然后,我使用此选项清除文本框: TextBox tb = obj as TextBox; if (tb != null) tb.Text = ""; for (int i = 0; i < VisualTreeHe
foreach(TabItem item in Tabs.Items)
{
ClearTextBoxes(this);
}
然后,我使用此选项清除文本框:
TextBox tb = obj as TextBox;
if (tb != null)
tb.Text = "";
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
{
ClearTextBoxes(VisualTreeHelper.GetChild(obj, i));
}
TextBox tb=obj作为TextBox;
如果(tb!=null)
tb.Text=“”;
for(int i=0;i
它目前只清除第一个选项卡,而不清除其余选项卡
有什么想法吗?我认为应该是
cleartextbox(项目)
而不是cleartextbox(这个)
使用。视觉树中仅包含当前活动选项卡的项,因此视觉树辅助对象不是任务的最佳选择
只有当您有许多其他控件不在选项卡项中并且因此希望节省cpu电源时,才不需要迭代选项卡项。正如Bela R已经提到的,对ClearTextBox()的调用中有一个错误 +1-在我意识到只有当前选定的选项卡加载了它的控件之前,TabControl有很多问题。我将它改为ClearTextBox(选项卡)它对当前选项卡有效…在这种情况下,我如何使用LogicalTreeHelper…我对它不太熟悉。@Woundedbear:下面的链接包含一个在逻辑树和可视化树中查找的helper方法。有了它,您将找到所有元素。我没有测试它,但它看起来不错。如果我的答案对你有帮助,请点击我答案投票按钮下的复选标记接受。
foreach(TabItem item in Tabs.Items)
{
ClearTextBoxes(item);
}