我如何简化crud

| 嗨,我想简化我在Crud MessageBox上的代码。我目前有20多个CRUD表单页面,其中包含4个创建,更新,删除和重置按钮。我如何简化此过程以成为用户控件?这样我就不必继续写“成功保存”,“抱歉,错误”,...。 我的密码
 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_Click(this,null);在我传递标志的位置下方调用此方法。
 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 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_Click。您可以在整个软件中使用相同的方法,前提是您要在所有地方运行相同的代码。

要回复问题请先登录注册