zoukankan      html  css  js  c++  java
  • 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);
            }
    

      完成!!

  • 相关阅读:
    人工智能,垂直领域
    西方企业该向中国式创新学什么?
    [Leetcode 6] ZigZag问题的一种新思路
    Unknown column &#39;*&#39; in &#39;field list&#39; 异常解决
    多媒体——图像文件大小的计算
    Lucky Number
    win7 64位系统下进入debug
    Chromium网页DOM Tree创建过程分析
    做好长期奋斗的准备
    IP寻址和子网运算
  • 原文地址:https://www.cnblogs.com/kfx2007/p/2958613.html
Copyright © 2011-2022 走看看