清除控件内的文本框

本文关键字:文本 控件 清除 | 更新日期: 2023-09-27 18:05:04

我有一系列的选项卡,其中包含文本框。有些选项卡也有一个控件,在滚动视图中包含文本框。我正在尝试遍历选项卡并清除文本框的内容。

我要用这个:

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

当前只清除第一个选项卡,其余的都不清除。

任何想法?

清除控件内的文本框

使用LogicalTreeHelper。可视化树中只包含当前活动选项卡的项,因此可视化树帮助器不是任务的最佳选择。

迭代选项卡项在IMO上是不必要的,只有当你有很多其他控件不驻留在选项卡项,因此想要节省cpu功率。正如贝拉R已经提到的,有一个错误在你调用ClearTextBoxes()。

我认为应该是ClearTextBoxes(item)而不是ClearTextBoxes(this)

foreach(TabItem item in Tabs.Items)
{
    ClearTextBoxes(item);
}