重置表单中的所有项目

Yuk*_*uya 10 c# reset winforms

我想知道,有没有办法可以将所有复选框,文本框,数字和其他控件重置为默认值,而无需单独为每个控件编写代码?这是我尝试过的代码,但似乎不起作用:

for (int i = 0; i < this.Controls.Count; i++)
{
    this.Controls[i].ResetText();
}
Run Code Online (Sandbox Code Playgroud)

编辑:
我已通过手动设置控制值修复它,抱歉所有的麻烦>.<.

Pra*_*ana 11

如下所示创建类并像这样调用它

检查:使用C#重置Windows窗体中的所有控件(Textbox,ComboBox,CheckBox,ListBox)

private void button1_Click(object sender, EventArgs e)
{
   Utilities.ResetAllControls(this);
}
Run Code Online (Sandbox Code Playgroud)
public class Utilities
    {
        public static void ResetAllControls(Control form)
        {
            foreach (Control control in form.Controls)
            {
                if (control is TextBox)
                {
                    TextBox textBox = (TextBox)control;
                    textBox.Text = null;
                }

                if (control is ComboBox)
                {
                    ComboBox comboBox = (ComboBox)control;
                    if (comboBox.Items.Count > 0)
                        comboBox.SelectedIndex = 0;
                }

                if (control is CheckBox)
                {
                    CheckBox checkBox = (CheckBox)control;
                    checkBox.Checked = false;
                }

                if (control is ListBox)
                {
                    ListBox listBox = (ListBox)control;
                    listBox.ClearSelected();
                }
            }
        }      
    }
Run Code Online (Sandbox Code Playgroud)


Ang*_*ung 8

您可以再次创建表单并处理旧表单.

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void btnReset_Click(object sender, EventArgs e)
    {
        Form1 NewForm = new Form1();           
        NewForm.Show();
        this.Dispose(false);
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 我知道这个帖子已经老了但是有什么理由我不应该这样做吗?它似乎比任何其他答案都容易得多. (3认同)