C# 清除所有文本框文本

C# 清除所有文本框文本,c#,textbox,C#,Textbox,我有一个包含许多文本框的tabControl,我想添加一个按钮来一次性清除所有文本框的文本,我尝试了以下代码: private void ClearButton_Click(object sender, EventArgs e) { foreach (TextBox t in tabControl1.SelectedTab.Controls) { t.Clear(); } } void ClearTextBoxes(Control parent) {

我有一个包含许多文本框的tabControl,我想添加一个按钮来一次性清除所有文本框的文本,我尝试了以下代码:

private void ClearButton_Click(object sender, EventArgs e)
{
    foreach (TextBox t in tabControl1.SelectedTab.Controls)
    {
        t.Clear();
    }
}
void ClearTextBoxes(Control parent)
{
    foreach (Control child in parent.Controls)
    {
        TextBox textBox = child as TextBox;
        if (textBox == null)
            ClearTextBoxes(child);
        else
            textBox.Text = string.Empty;
    }
}

private void ClearButton_Click(object sender, EventArgs e)
{
    ClearTextBoxes(tabControl1.SelectedTab);
}
但此代码不起作用,我收到了以下错误消息:

无法将“System.Windows.Forms.Button”类型的对象强制转换为“System.Windows.Forms.TextBox”类型


这段代码怎么了?

您得到的是所有控件,而不仅仅是foreach循环中的文本框

试着这样做:

foreach (Control t in tabControl1.SelectedTab.Controls)
{
    if(t is TextBox)
        ((TextBox)t).Clear();
}

您试图遍历每个控件,其中一些控件不是TextBox控件

您可以使用指定感兴趣的控件,而不是:

foreach (TextBox t in tabControl1.SelectedTab.Controls.OfType<TextBox>())
{
    t.Clear();
}

并非所有控件都是文本框。这样做:

private void ClearButton_Click(object sender, EventArgs e)
{
    foreach (var control in tabControl1.SelectedTab.Controls)
    {
        if(control is TextBox)
        {
             TextBox t = (TextBox)control;
             t.Clear();
             // or short:
             // ((TextBox) control).Clear();
        }
    }
}
请尝试以下代码:

private void ClearButton_Click(object sender, EventArgs e)
{
    foreach (TextBox t in tabControl1.SelectedTab.Controls)
    {
        t.Clear();
    }
}
void ClearTextBoxes(Control parent)
{
    foreach (Control child in parent.Controls)
    {
        TextBox textBox = child as TextBox;
        if (textBox == null)
            ClearTextBoxes(child);
        else
            textBox.Text = string.Empty;
    }
}

private void ClearButton_Click(object sender, EventArgs e)
{
    ClearTextBoxes(tabControl1.SelectedTab);
}

我喜欢这对我来说不起作用,我以前试过,但我收到一条错误信息这是错误信息:不可能的d'activer les Contraines。如果我删除此代码,我的应用程序运行时不会出错,那么此代码与违反非null的行为之间的关系是什么,唯一或外键约束???好的,谢谢你,我在询问之前尝试了一些解决方案,但在这里对我不起作用。它对我不起作用我以前试过,但收到一条错误消息