1

我想在按下按钮时清除所有文本框、组合框并将 numericupdown 重置为零。

最好的方法是什么。对不起,如果有人觉得这个 q 很愚蠢。

4

3 回答 3

2

如果您使用的是 WinForms,您可以使用以下内容清除所有想要的控件。

public void ClearTextBoxes(Control control)
{
    foreach (Control c in control.Controls)
    {
        if (c is TextBox)
        {
            if (!(c.Parent is NumericUpDown))
            {
                ((TextBox)c).Clear();
            }
        }
        else if (c is NumericUpDown)
        {
            ((NumericUpDown)c).Value = 0;
        }
        else if (c is ComboBox)
        {
            ((ComboBox)c).SelectedIndex = 0;
        }

        if (c.HasChildren)
        {
            ClearTextBoxes(c);
        }
    }
}

然后要激活它,您只需在表单中添加一个按钮,并在代码隐藏中添加以下内容。

private void button1_Click(object sender, EventArgs e)
{
    ClearTextBoxes(this);
}
于 2013-02-14T17:17:03.643 回答
1
public void ClearTextBoxes(Control parent)
{
    foreach(Control c in parent.Controls)
    {
        ClearTextBoxes(c);
        if(c is TextBox) c.Text = string.Empty;
        if(c is ComboBox) c.SelectedIndex = 0;
    }
}

或者

public void ClearTextBoxes(Control ctrl) 
{ 
    if (ctrl != null) 
    { 
        foreach (Control c in ctrl.Controls) 
        { 
            if (c is TextBox)
            {   
                ((TextBox)c).Text = string.empty; 
            } 

            if(c is ComboBox)
            {
                ((ComboBox)c).SelectedIndex = 0;
            }
            ClearTextBoxes(c); 
        } 
    } 
} 
于 2013-02-14T17:17:59.427 回答
-1

如果这是 WinForms 遍历所有控件并重置它们

foreach (Control c in this.Controls)
{
   if (c is TextBox)
   {
        ((TextBox)c).Text = "";
   }
   else if (c is ComboBox)
   {
        ((ComboBox)c).SelectedIndex = 0;
   }
   else if (c is NumericUpDown)
   {
        ((NumericUpDown)c).Value= 0;
   }
}
于 2013-02-14T17:16:50.350 回答