WPF - 清除tabcontrol中的所有文本框都不起作用

时间:2011-03-16 21:27:52

标签: c# wpf textbox wpf-controls clear

我有一个带有选项卡控件的应用程序和每个选项卡中的几个文本框,当用户这样说时,我希望清除窗口中的每个文本框(称为MainWindow)。我使用了here描述的方法,但它似乎只适用于选项卡中的文本框,它是焦点。

2 个答案:

答案 0 :(得分:4)

试试这个:

void ClearTextBoxes(DependencyObject obj)
{
    TextBox tb = obj as TextBox;
    if (tb != null)
        tb.Text = "";

    for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj as DependencyObject); i++)
        ClearTextBoxes(VisualTreeHelper.GetChild(obj, i));
}

private void Button_Click(object sender, RoutedEventArgs e)
{
    ClearTextBoxes(this);
}

答案 1 :(得分:1)

尝试使用VisualTreeHelper.GetChildren

替换LogicalTreeHelper.GetChildren的来电

LogicalTreeHelper获取实际的可视化树。通常这不仅仅是逻辑树,但在这种情况下,由于其他选项卡不可见 - 这些选项卡中的可视子树不会被创建。 LogicalTree应该仍然在那里,所以这应该工作。