如何清除WinForm

时间:2017-06-06 14:30:00

标签: c# winforms textbox

我有WinForm项目,该项目使用SpellBoxes中的WPF。我现在正在创建一个函数来清除我的所有字段和类中的TextBoxes。 textBoxes实际上SpellBoxes已集成到项目中,这就是为什么我认为我遇到了这个问题。根据我的理解,最好通过循环遍历所有控件来实现这一点:

public void ClearControls()
        {
            foreach (Control control in panel1.Controls)
            {
                if (control is SpellBox)
                {
                    SpellBox txt = (SpellBox)control;
                    txt.Text = "";
                }


            }
        }

然后调用点击事件ClearControls();

然而由于我使用了SpellBoxes,我似乎无法迭代,就好像它们甚至都没有被识别出来一样。上面的函数适用于TextBox,但不适用于spellBox’s。如果有人能给我一些关于为什么会发生这种情况的迹象,我将不胜感激。提前致谢

1 个答案:

答案 0 :(得分:0)

递归搜索的快速示例:

public void ClearControls(Control cntr)
{
    foreach (Control control in cntr.Controls)
    {
        if (control is SpellBox)
        {
            control.Text = "";
        }
        else if(control.HasChildren)
        {
            ClearControls(control);
        }
    }
}

您可以通过this传递表单本身来启动它:

ClearControls(this);