我知道有很多答案可以解决这个问题,但我确实希望有经验的人可以选择。
因此,在填写表单后,用户可以选择保存数据并保留在表单中,保存数据并关闭表单或保存数据并添加新记录。
对于保存,保存和关闭它非常简单,但是对于保存和添加新记录,我有一些问题。
到目前为止,我将保存数据后将所有控件重置为其原始状态。
Comboboxes to SelectedIndex = -1;
Textboxes to string.Empty;
Radioboxes to checked = false;
Checkboxes to checked = false;
DatetimeEdit to Values = null;
这适用于以较小的形式重置控件。
还有其他更快,更好的方法可以实现这一目标吗?
也许关闭并重新打开表格?
我所有的控件,组合框填充和其他需求都在构造函数中完成。我没有在“加载事件”中加载任何内容。
答案 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;
}
}
}
}