Splitcontainer中清除复选框和文本框 - C#

时间:2013-12-21 10:20:08

标签: c# winforms checkbox textbox

我正在尝试清除我的splitcontainer的第一个面板中的所有复选框和文本框但是我没有运气,因为似乎没有任何事情发生。

private void clearSettingsBtn_Click(object sender, EventArgs e)
{
    foreach (Control c in splitContainer1.Panel1.Controls)
    {
        if (c is CheckBox)
        {
            ((CheckBox)c).Checked = false;
        }
        else if (c is TextBox)
        {
            ((TextBox)c).Clear();
        }
    }
}

我错过了什么吗?

2 个答案:

答案 0 :(得分:2)

实际上你的代码非常好,应该有另一个问题,例如错误的面板或更可能在你的面板中有另一个容器,比如GroupBox,在这种情况下(另一个容器)你应该遍历该容器。 / p>

如果您在面板中有一个容器,一个简单的代码可能是这样的:

            foreach (Control control in splitContainer1.Panel2.Controls)
        {
            if (control is GroupBox)
            {
                foreach (Control child in (control as GroupBox).Controls)
                {
                    if (child is CheckBox)
                    {
                        ((CheckBox)control).Checked = false;
                    }
                    else if (child is TextBox)
                    {
                        (control as TextBox).Clear();
                    }
                }
            }
        }

但是如果你想编写更通用的代码,你应该检查每个容器,即GroupBox,Panel等。

答案 1 :(得分:0)

试试这个

foreach (Control c in Panel1.Controls)
            {
                if (c is CheckBox)
                {
                    ((CheckBox)c).Checked = false;
                }
                else if (c is TextBox)
                {
                    ((TextBox)c).Text="";
                }
            }