C# 如何将Windows窗体重新加载或刷新到原始状态?

C# 如何将Windows窗体重新加载或刷新到原始状态?,c#,winforms,C#,Winforms,如何将Windows窗体重新加载或刷新到原始状态?我用过这个。刷新();,这个。使()无效;,form.Refresh(),form.Invalidate() 我只想在数据正确保存或更新后将表单重新加载到原始状态 “this.Refresh();,this.Invalidate();,form.Refresh(),form.Invalidate()” 这些函数只是告诉窗口管理器重新绘制表单图形;它们与表单数据的状态无关 似乎您需要做的就是将控件值设置回其原始值,因此,在窗体上创建一个函数: p

如何将Windows窗体重新加载或刷新到原始状态?我用过这个。刷新();,这个。使()无效;,form.Refresh(),form.Invalidate()

我只想在数据正确保存或更新后将表单重新加载到原始状态

“this.Refresh();,this.Invalidate();,form.Refresh(),form.Invalidate()”

这些函数只是告诉窗口管理器重新绘制表单图形;它们与表单数据的状态无关

似乎您需要做的就是将控件值设置回其原始值,因此,在窗体上创建一个函数:

 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.
    }
然后在代码的成功部分调用函数:

if ( UserManagement.UserInfo_Update (obj) > 0 )
            {
                MessageBox.Show ("Record Succesfully Updated!");
                //reset this form, no need to make another one...
                ResetForm();
            }
您还可以在
表单加载
中的某个地方包含对
ResetForm()
的调用,等等

但是

我建议,一旦你对这样做感到满意,你就停止这样做,使用Winforms内置的;它允许您使用设计器将表单上的用户界面元素(文本框等)绑定到各种类属性(例如
UserManagement
Class)

通过这种方式,您可以通过创建一个新的
UserManagement
实例来简单地“重置”表单,而不必处理清除文本框等所有粗糙的细节。否则,您会发现,随着对象变得越来越复杂,编写手动重置表单UI元素的代码变得越来越繁琐,并且容易出错


希望有帮助。

这很简单。必须创建新的表单对象并关闭当前表单

 Form fr = new Form();
     fr.Show();
     this.Close();

我通过关闭和打开表单来实现这一点。因此,用您的表单名替换******

        ***your form name** ss = new **your form name***();
        ss.Show();
        this.Hide();
我还建议在完全关闭表单之前关闭表单:

 private void ***Your form name***Closed(object sender, FormClosedEventArgs e)
    {
        Application.Exit();
    }
试试这个:

this.Controls.Clear();
this.InitializeComponent();

您的上述代码是什么形式的?它是用户信息表单吗?因为如果是这样的话,你会让主窗体保持可见,创建一个新的UserInfoForm,但不显示它并尝试刷新它。是的,我会让主窗体保持可见,当我添加数据并成功保存时,主窗体将被重新加载或刷新到其原始状态。就我而言,这就像是新加载的窗体。回答得不错+1如果可能,请随代码一起提供注释,说明此代码的工作原理。
this.Controls.Clear();
this.InitializeComponent();