委托和事件

第一步 (C中)创建

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FinancialMgr.UI
{
    //定义一个委托
    public delegate void SelectChangeEventHandler(object sender, int selectIndex);
    public class SelectChangeEvent
    {
        //定义一个事件
        public event SelectChangeEventHandler AskSelectChangeEvent;
        //触发事件
        public void OnSelectChange(object sender, int selectIndex)
        {
            if (AskSelectChangeEvent != null)
            {
                AskSelectChangeEvent(sender, selectIndex);
            }
        }
    }
}

第二步:(A中)声明、绑定

 //声明一个委托
        SelectChangeEvent FormSelectEvent = new SelectChangeEvent();
//绑定
FormSelectEvent.AskSelectChangeEvent += ChildFromSelected;

第三步:(B中)触发 方法

ChildFromSelected()
 FormSelectEvent.OnSelectChange(this, blockIndex)

 第三步:(A中)绑定的方法

  #region 事件:子窗体选中事件
        private Control selectedControl = null;
        private void ChildFromSelected(object sender, int blockIndex)
        {
            try
            {
                selectedControl = (Control)sender;
                foreach (var item in pnlBlock.Controls)
                {
                    ((FrmBlock)item).IsSelected = false;
                }
                ((FrmBlock)selectedControl).IsSelected = true;
            }
            catch (Exception ex)
            {
                this.ShowTopic("选中一条申请记录时出现错误,错误原因:" + ex.Message);
            }
        } 
        #endregion

 




 

posted @ 2019-08-31 15:33  马玲  阅读(156)  评论(0编辑  收藏  举报