gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 23:15:22 24 4
gpt4 key购买 nike

如何重新加载或刷新 Windows 窗体到原始状态?我用过 this.Refresh();,this.Invalidate();,form.Refresh(),form.Invalidate()

private void AdduserBtn_Click_1(object sender, EventArgs e)
{
UserManagement obj = new UserManagement ();
obj.CourseCategoryId = (int) CourseRegCbox.SelectedValue;
obj.IDNumber = IDNumberTbox.Text;
obj.Password = PasswordRegTbox.Text;
obj.FName = FnameRegTbox.Text;
obj.LName = LnameRegTbox.Text;
obj.Gender = GenderTbox.Text;
obj.Email = EmailRegTbox.Text;
obj.PhoneNumber = PhonenumberRegTbox.Text;
obj.Address = AddressRegTbox.Text;

if ( UserManagement != null && UserManagement.Id > 0 )
{
obj.Id = UserManagement.Id;
if ( UserManagement.UserInfo_Update (obj) > 0 )
{
MessageBox.Show ("Record Succesfully Updated!");
UserInfoForm form = new UserInfoForm ();
form.Refresh ();
}
else
{
MessageBox.Show ("An error occured!");
}
}
else
{
if ( UserManagement.UserInfo_Insert (obj) > 0 )
{
MessageBox.Show ("Record Succesfully Added!");
UserInfoForm form = new UserInfoForm ();
form.Refresh ();

}
else
{
MessageBox.Show ("An error occured!");
}
}
}

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

最佳答案

"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();
}

您还可以在 Form_Load 中的某处包含对 ResetForm() 的调用,等等。

但是

我建议,一旦您习惯了这样做,您就停止这样做并使用data-binding facility内置于 Winforms 中;它允许您做的是使用设计器将表单上的用户界面元素(文本框等)绑定(bind)到各种类属性(例如 UserManagement 类)。

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

希望对您有所帮助。

关于c# - 如何重新加载或刷新 Windows 窗体到原始状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19760945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com