Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 清除控件内的文本框_C#_Wpf_Wpf Controls - Fatal编程技术网

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);
}