C# 如何简化积垢
嗨,我想简化我在crud messagebox上的代码。我目前有将近20多页的CRUD表单,其中有4个按钮:创建、更新、删除和重置。如何将其简化为用户控件?这样我就不必继续写保存成功,对不起,错误 我的代码C# 如何简化积垢,c#,winforms,C#,Winforms,嗨,我想简化我在crud messagebox上的代码。我目前有将近20多页的CRUD表单,其中有4个按钮:创建、更新、删除和重置。如何将其简化为用户控件?这样我就不必继续写保存成功,对不起,错误 我的代码 protected override void btnSave_Click(object sender, EventArgs e) { if (!validateBeforeSave()) return; if (MessageBox.Show(M
protected override void btnSave_Click(object sender, EventArgs e)
{
if (!validateBeforeSave()) return;
if (MessageBox.Show(MessageManager.SaveAsk, "Are you sure?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
try
{
BindValueToObject();
if (Convert.ToInt32(lblEmpId.Text) == 0)
{
user.Add();
ResetAfterSave(true, user.Id);
base.Success = true;
}
else
{
user.Update();
ResetAfterSave(false, user.Id);
base.Success = true;
}
base.btnSave_Click(this, null);
}
catch (Exception ex)
{
Logger.Error(typeof(UsersForm), ex.ToString());
base.Success = false;
base.btnSave_Click(this, null);
}
}
}
protected override void btnDelete_Click(object sender, EventArgs e)
{
if (null == dgUser.CurrentRow) return;
user.Id = (int)dgUser.SelectedRows[0].Cells["empId"].Value;
try
{
if ((MessageBox.Show(MessageManager.DeleteAsk, "Are you sure to delete?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes))
{
user.Delete();
ResetAfterSave(false, 0);
base.Success = true;
base.btnDelete_Click(this, null);
}
}
catch
{
base.Success = false;
base.btnDelete_Click(this, null);
}
}
base.btnSave\u单击此按钮,为空;在我穿过旗子的地方叫这个
protected virtual void btnSave_Click(object sender, EventArgs e)
{
if (this.success)
MessageBox.Show(MessageManager.SaveSuccess, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
else
{
MessageBox.Show(MessageManager.SaveFailed, "Fail to save", MessageBoxButtons.OK, MessageBoxIcon.Stop);
return;
}
}
一遍又一遍地重写这篇文章,我感到非常恼火 对不起,我的意思是提取而不是封装..在提取方法时可以封装字段。您可以从重构>提取方法中选择此选项。将这些方法写在主窗体中并公开。然后在整个应用程序中使用它们 我有一个更好的选择,但如果这样做有危险,我想纠正自己 我们要做的是在主窗体中声明事件处理程序public 例如
public virtual void btnSave_Click(object sender, EventArgs e)
{
if (this.success)
MessageBox.Show(MessageManager.SaveSuccess, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
else
{
MessageBox.Show(MessageManager.SaveFailed, "Fail to save", MessageBoxButtons.OK, MessageBoxIcon.Stop);
return;
}
}
现在,在任意窗体中选择任意保存按钮,转到属性>事件>并选择btnSave\u单击。您可以在整个软件中使用相同的方法,前提是您在任何地方都可以运行相同的代码。一些代码可以很好地演示您正在做什么。我认为这取决于您如何设计UI。对于我来说,通常我使用delete和update链接检索。通常,选择是在加载时完成的,然后用户可以进行筛选,或者单击他们想要更新或删除的内容。这三个部分合在一起,形成一页。插入功能将以弹出窗口的形式出现,在弹出窗口中显示一个新的用户界面。我认为有CRUD但没有弹出窗口的页面更好。这将有助于你可视化一个页面,页面左侧有gridview,右侧有一些控件,例如textbox。。单击gridview将向右侧的控件显示这些数据。@Woot4Moo:Hi我已经添加了代码。请advice@belinq:尝试封装重复方法。