保存数据后将表格正确地重新加载到其初始状态

时间:2018-09-02 21:45:18

标签: c#

我知道有很多答案可以解决这个问题,但我确实希望有经验的人可以选择。

因此,在填写表单后,用户可以选择保存数据并保留在表单中,保存数据并关闭表单或保存数据并添加新记录。

对于保存,保存和关闭它非常简单,但是对于保存和添加新记录,我有一些问题。

到目前为止,我将保存数据后将所有控件重置为其原始状态。

Comboboxes to SelectedIndex = -1;
Textboxes to string.Empty;
Radioboxes to checked = false;
Checkboxes to checked = false;
DatetimeEdit to Values = null;

这适用于以较小的形式重置控件。

还有其他更快,更好的方法可以实现这一目标吗?

也许关闭并重新打开表格?

我所有的控件,组合框填充和其他需求都在构造函数中完成。我没有在“加载事件”中加载任何内容。

1 个答案:

答案 0 :(得分:3)

为了有效地做到这一点并重用它有可能做类似的事情,请请参阅注释

private void RollBackForm()
{
    // put here all the containers the contain the controls, panel,groupbox the form itself etc...
    Control[] Containers = { panel1, groupBox1, this };
    // iterate trough all containers
    foreach (Control container in Containers)
    {
        // check control type, cast it and set to default
        foreach (Control childControl in container.Controls)
        {
            if (childControl is ComboBox)
            {
                ((ComboBox)childControl).SelectedIndex = -1;
            }
            else if (childControl is TextBox)
            {
                ((TextBox)childControl).Text = string.Empty;
            }
            else if (childControl is RadioButton)
            {
                ((RadioButton)childControl).Checked = false;
            }
            else if (childControl is CheckBox)
            {
                ((CheckBox)childControl).Checked = false;
            }
        }
    }
}