这是自定义的委托和事件
public delegate void RefreshNodeEventHandler(object sender, RefreshNodeEventArgs e);
public event RefreshNodeEventHandler RefreshNode;

解决方案 »

  1.   

    这是参数的设置
            public class RefreshNodeEventArgs : EventArgs
            {
                public TreeListNode Node { get; set; }
                public RefreshNodeEventArgs(TreeListNode node)
                {
                    this.Node = node;
                }
            }
      

  2.   

    这是事件的触发
                if (RefreshNode != null)
                {
                    RefreshNode(this,new RefreshNodeEventArgs(TreeSelectedNode));
                }
      

  3.   


     public delegate void RefreshNodeEventHandler(object sender, RefreshNodeEventArgs e, params object[] p_Objects);
      

  4.   


    什么意思?没看明白。。
    我的两个方法分别是这样的
    public void Initialize();
    public void SetFocusedNode(TreeListNode node);我现在为了达到效果写成这样了
    public void RefreshNode(object sender, THDM.UI.ucGroupControl.RefreshNodeEventArgs e)
            {
                Initialize();
                SetFocusedNode(e.Node);
            }
    但是这是不合理的吧?
      

  5.   


    什么意思?没看明白。。
    我的两个方法分别是这样的
    public void Initialize();
    public void SetFocusedNode(TreeListNode node);我现在为了达到效果写成这样了
    public void RefreshNode(object sender, THDM.UI.ucGroupControl.RefreshNodeEventArgs e)
            {
                Initialize();
                SetFocusedNode(e.Node);
            }
    但是这是不合理的吧?
    你是需要在触发RefreshNode的时候去执行Initialize和SetFocusedNode事件对吗?
      

  6.   


    什么意思?没看明白。。
    我的两个方法分别是这样的
    public void Initialize();
    public void SetFocusedNode(TreeListNode node);我现在为了达到效果写成这样了
    public void RefreshNode(object sender, THDM.UI.ucGroupControl.RefreshNodeEventArgs e)
            {
                Initialize();
                SetFocusedNode(e.Node);
            }
    但是这是不合理的吧?
    你是需要在触发RefreshNode的时候去执行Initialize和SetFocusedNode事件对吗?对 触发RefreshNode的时候 先执行Initialize再执行SetFocusedNode
    SetFocusedNode可以写成public void SetFocusedNode(object sender, THDM.UI.ucGroupControl.RefreshNodeEventArgs e)
    但是Initialize是一个初始化的函数不能改变 所以怎么才能成功添加两个不同参数的方法呢?求教
      

  7.   

    像你这样的写法,是合理的,为什么不合理?这样写可以很好的控制执行顺序。
    写代码并不是为了一定要达成什么样的规则而生搬硬套,不用太纠结。
    如果一定要实现只能这样了,而且绑定事件的先后顺序一定不能更改。        public delegate void RefreshNodeEventHandler(params object[] p_Objects);        public event RefreshNodeEventHandler RefreshNode;        public void Load()
            {
                RefreshNode += Init;
                RefreshNode += SetFocusedNode;
            }        public void Init(params object[] p_Objects)
            {
                /*虽然有参数,但是可以不用传入,函数内部也不使用此参数*/
            }        public void SetFocusedNode(params object[] p_Objects)
            {
                var sender = p_Objects[0];
                var e = (THDM.UI.ucGroupControl.RefreshNodeEventArgs) p_Objects[1];
            }