"this.Refresh();,this.Invalidate();,form.Refresh(),form.Invalidate()“
这些函数只是告诉窗口管理器重新绘制表单图形;它们与表单数据的状态无关。
似乎您所需要做的就是将您的控件值设置为它们的原始值,因此,在表单上创建一个函数:
代码语言:javascript运行复制 private void ResetForm()
{
//write code here to setup your dropdowns, put empty strings into textboxes, etc.
//pretty much the reverse of the process by which you copy the values into your user object.
}然后在代码的成功部分调用函数:
代码语言:javascript运行复制if ( UserManagement.UserInfo_Update (obj) > 0 )
{
MessageBox.Show ("Record Succesfully Updated!");
//reset this form, no need to make another one...
ResetForm();
}您还可以在ResetForm()的某个地方调用Form_Load,等等。
然而,
我建议,一旦您习惯了这样做,那么就停止使用,使用构建在Winforms中的数据绑定设施;它允许您使用设计器将表单上的用户界面元素(文本框等)绑定到各种类属性(例如UserManagement类)。
这样,您就可以通过创建一个新的UserManagement实例来“重置”表单,而不必处理清除文本框等所有粗糙的细节。否则,随着对象变得越来越复杂,编写手动重置表单UI的代码变得越来越繁琐和容易出错。
希望这能有所帮助。