`
wangcaiwq
  • 浏览: 7336 次
文章分类
社区版块
存档分类
最新评论

标准的事件和委托声明写法(C#)

 
阅读更多
标准的事件和委托声明写法:
        // 定义委托
        public delegate void PicChangeHandler(object sender, PicChangeEventArgs args);
        /// <summary>
        /// 声明切换图片事件
        /// </summary>
        public static event PicChangeHandler PicChange;
        /// <summary>
        /// 调用图片切换事件函数
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        public void OnPicChange(object sender, PicChangeEventArgs args)
        {
            if (PicChange != null)
            {
                PicChange(this, args);
            }
        }

        /// <summary>
        /// 自定义切换图片事件参数类型,根据需要可设定多种参数便于传递
        /// </summary>
        public class PicChangeEventArgs : EventArgs
        {
            private Cursor m_cur;

            public Cursor Cur
            {
                get { return m_cur; }
                set { m_cur = value; }
            }
            private PictureEntry m_pic;

            public PictureEntry Pic
            {
                get { return m_pic; }
                set { m_pic = value; }
            }

            public PicChangeEventArgs(Cursor c1, PictureEntry p1)
            {
                Cur = c1;
                Pic = p1;
            }
        }

触发事件:

 // 触发事件, 传递自定义参数
            OnPicChange(this, new PicChangeEventArgs(this.pictureBox.Cursor, pic));

调用事件:

RisImageViewer.PicChange += new RisImageViewer.PicChangeHandler(OnPicChange);
public void OnPicChange(object sender, FounderSoft.RISClient.WinForms.RisImageViewer.PicChangeEventArgs args)
        {
                PictureListItem nextPicItem = new PictureListItem(args.Pic.Pic);
}




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics