餐饮管理系统中事件的使用

来源:互联网 发布:数据库备份与灾难恢复 编辑:程序博客网 时间:2024/05/01 02:55

以增加和修改商品种类为例:

1、CategoryEventArgs.cs中

    public class CategoryEventArgs:EventArgs    {        public Model.CategoryInfo NewCategoryInfo { get; set; }    }

2、CategoryHandler.cs

    public delegate bool CategoryHandler(object sender, CategoryEventArgs e);

3、FrmCategoryInfoHandler.cs

这里写图片描述

 public partial class FrmCategoryInfoHandler : Form    {        Model.CategoryInfo oldCategoryInfo;        public event CategoryHandler Handler;        public string BtnClick {            get { return btnOK.Text; }            set { btnOK.Text = value; }        }        public CategoryInfo OldCategoryInfo        {            get            {                return oldCategoryInfo;            }        }        //增加操作调用此构造函数        public FrmCategoryInfoHandler()        {            InitializeComponent();        }        public FrmCategoryInfoHandler(Model.CategoryInfo old):this()        {            //初始化,修改操作调用此构造函数            oldCategoryInfo = old;            txtCatName.Text = old.Catname;            txtCatNum.Text = old.Catnum;            txtRemark.Text = old.Remark;        }        private void btnOK_Click(object sender, EventArgs e)        {            string catName = txtCatName.Text.Trim();            string catNum = txtCatNum.Text.Trim();            string catRemark = txtRemark.Text.Trim();            Model.CategoryInfo categoryInfo = new Model.CategoryInfo();            categoryInfo.Catname = catName;            categoryInfo.Catnum = catNum;            categoryInfo.Remark = catRemark;            //默认值            categoryInfo.Subby = 1;            categoryInfo.Subtime = DateTime.Now;            categoryInfo.Delflag = 0;            //调用事件方法            CategoryEventArgs mye = new CategoryEventArgs();            mye.NewCategoryInfo = categoryInfo;            if (Handler!=null)            {                if (Handler(this, mye))                {                    this.DialogResult = DialogResult.OK;                }            }        }    }

4、对以上代码的使用:

这里写图片描述

在点击添加商品类中:

            using (FrmCategoryInfoHandler frmHandler = new FrmCategoryInfoHandler())            {                frmHandler.BtnClick = "添加";                frmHandler.Handler += FrmHandler_Handler;                if (frmHandler.ShowDialog() == DialogResult.OK)                {                    LoadDataCategory();                }            }
        private bool FrmHandler_Handler(object sender, CategoryEventArgs e)        {            return categoryInfoBLL.InsertData(e.NewCategoryInfo);        }

点击修改:

            if (dgViewCategory.SelectedRows.Count == 0)            {                return;            }            Model.CategoryInfo old = dgViewCategory.SelectedRows[0].DataBoundItem as Model.CategoryInfo;            using (FrmCategoryInfoHandler frmCatoryHandler = new FrmCategoryInfoHandler(old))            {                frmCatoryHandler.BtnClick = "修改";                frmCatoryHandler.CatName = old.Catname;                frmCatoryHandler.CatNum = old.Catname;                frmCatoryHandler.Remark = old.Remark;                frmCatoryHandler.Handler += FrmCatoryHandler_Handler;                if (frmCatoryHandler.ShowDialog() == DialogResult.OK)                {                    LoadDataCategory();                }            }
        private bool FrmCatoryHandler_Handler(object sender, CategoryEventArgs e)        {            Model.CategoryInfo old = (sender as FrmCategoryInfoHandler).OldCategoryInfo;            Model.CategoryInfo news = e.NewCategoryInfo;            news = MyCompare(old, news);            if (news != null)            {                return categoryInfoBLL.Update(news);            }            else            {                return false;            }        }
        private CategoryInfo MyCompare(CategoryInfo old, CategoryInfo news)        {            news.Catid = old.Catid;            int count=0;            if (old.Catname==news.Catname)            {                count++;                news.Catname = null;            }            if (old.Catnum==news.Catnum)            {                count++;                news.Catnum = null;            }            if (old.Remark==news.Remark)            {                count++;                news.Remark = null;            }            return count == 3 ? null : news;        }
0 0