c#利用事件完成页面之间的交互

1.创建窗体FrmEvent和FrmEventExpend,将FrmEventExpend添加的信息显示到FrmEvent窗体中
在这里插入图片描述
在这里插入图片描述
2.创建 ExpendNew类存储信息

public  class ExpendNew
    {
        public string ItemName { get; set; }
        public string Remark { get; set; }
        public decimal Amount { get; set; }
    }

3.声明事件,ExpendArgs用来表示需要传递的消息,必须继承EventArgs

 public event EventHandler<ExpendArgs> ShowExpendInfoEvent;
  public class ExpendArgs:EventArgs
    {
        public ExpendNew ExpendInfo { get; set; }
        public ExpendArgs(ExpendNew info)
        {
            ExpendInfo = info;
        }
    }
  1. FrmEvent来绑定事件,表名事件需要完成的任务(注意:事件绑定函数只能使用+=或者-=,不能像委托一样直接使用=)
private void btnExpend_Click(object sender, EventArgs e)
        {
            FrmEventExpend frm = new FrmEventExpend();
            // frm.ShowExpendInfoEvent += Frm_ShowExpendInfoEvent;//事件的订阅
            frm.ShowExpendInfoEvent += Frm_ShowExpendInfoEvent1;
            frm.Show();
        }
private void Frm_ShowExpendInfoEvent1(object sender, ExpendArgs e)
        {
            ExpendNew info = e.ExpendInfo;
            lblExpendList.Text += info.ItemName + "," + info.Remark + "," + info.Amount + "\r\n";
        }

5.当点击FrmEventExpend的支出记账的时候,需要事件响应

         private void btnInRecord_Click(object sender, EventArgs e)
        {
            //信息接收
            string itemName = txtItemName.Text;
            string remark = txtRemark.Text;
            decimal amount = decimal.Parse(txtAmount.Text);
            //封装
            ExpendNew expend = new ExpendNew()
            {
                ItemName = itemName,
                Remark = remark,
                Amount = amount
            };
            list.Add(expend);
            int length = list.Count;
            if(length-count==1)
            {
                //触发事件,调用事件
                //ShowExpendInfoEvent?.Invoke(expend);  //?  如果事件不为空则调用,否则不调用 
                ShowExpendInfoEvent?.Invoke(this, new ExpendArgs(expend));  
                count = length;
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值