• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# 自定义控件和自定义事件

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

今天在项目开发的过程中,因为好几个页面都要用到同一个分类控件,就想着把它做成一个自定义控件,然后随托随用。在网上找了些列子,自定义控件的写法不用多说,主要说一下,如何将控件的事件,封装到自己定义的控件的自定义事件里面。这里同时也当作对自定义事件的一个复习吧。

 

首先控件是一个由TreeList控件组成的,后面由填充从数据查出来的数据信息。现在的问题是如何将TreeList的FocusedNodeChanged事件封装到自定义的事件

RSFocusedNodeChanged中。

 

首先定义事件的代理类

public class RSFocusedNodeChangedHandlerArgs
    {
        /// <summary>
        /// 选中的节点
        /// </summary>
        public TreeListNode focusedNode { get; set; }
        public RSFocusedNodeChangedHandlerArgs(TreeListNode node)
        {
            this.focusedNode = node;
        }
    }

  然后,自定一个事件和处理事件的委托:

/// <summary>
        /// 自定义focuseNode事件
        /// </summary>
        public event RSFocusedNodeChangedHandler RSFocusedNodeChanged;

         /// <summary>
        /// 自定义处理focuseNode事件的委托 
         /// </summary>
         /// <param name="sender"></param>
         /// <param name="e"></param>
        public delegate void RSFocusedNodeChangedHandler(Object sender, RSFocusedNodeChangedHandlerArgs e);

  然后定义之间的执行方法:

/// <summary>
        /// 执行事件
        /// </summary>
        /// <param name="e"></param>
        public void OnRSFocusedNodeChangedHandler(RSFocusedNodeChangedHandlerArgs e)
        {
            if (RSFocusedNodeChanged != null)
            {
                RSFocusedNodeChanged(this,e);
            }
        }

  最后,在TreeList的FocusedNodeChanged事件中触发我们自定义的事件:

public void treeList1_FocusedNodeChanged(object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e)
        {
           //触发自定义事件
            RSFocusedNodeChangedHandlerArgs er = new RSFocusedNodeChangedHandlerArgs(e.Node);
            OnRSFocusedNodeChangedHandler(er);
        }

  完成!!

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【转】C#屏蔽关键字发布时间:2022-07-14
下一篇:
C#代码中插入X86汇编发布时间:2022-07-14
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap