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


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

    首先控件是一个由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);
            }
    

      完成!!

  • 相关阅读:
    Excel Sheet Column Number
    Compare Version Numbers
    Min Stack
    Excel Sheet Column Title
    Find Peak Element
    数据规范化
    Majority Element
    用户唯一登录
    面试总结——Java高级工程师(三)
    Spring AOP 实战运用
  • 原文地址:https://www.cnblogs.com/kfx2007/p/2958613.html
Copyright © 2020-2023  润新知