如题,有解决方法吗?

解决方案 »

  1.   

    第1个方法 发送消息 SendMessage第2个方法 直接执行事件第3个方法 反射事件
      

  2.   

    1L 的方法不行,我说详细点吧,比如这个mousedown事件引发的方法都是删除自己,我不想改方法,而让控件一的子控件mousedown事件变成控件一的mousedown事件,即是不管点击控件一还是它的子控件都删除它。 2L能详细一点吗?SendMessage在C#怎么用?
      

  3.   

        public class ParentControl : ContainerControl
        {
            protected override void OnMouseDown(MouseEventArgs e)
            {
                base.OnMouseDown(e);            // 你要删除控件的代码。        }        internal void RasiMouseDownEvent(object sender, MouseEventArgs e)
            {
                if (sender is ChildControl) { OnMouseDown(e); }
            }
        }    public class ChildControl : Control
        {
            protected override void OnMouseDown(MouseEventArgs e)
            {
                base.OnMouseDown(e);            ParentControl parent = this.Parent as ParentControl;
                if (parent != null) { parent.RasiMouseDownEvent(this, e); }
            }
        }
      

  4.   

    直接在第一个MouseDown事件中,调用第二个控件的MouseDown事件。
    控件参数,可以用传NULL进去的。
      

  5.   

    this.MouseDown += new Delegate  ....  (Form2.OnMouseDown)
    LZ 参考 
    添加新的代理 就可以了
      

  6.   


    Form2.OnMouseDown is protected.
      

  7.   


    通过代理注册一个函数
    例如
    this.MouseDown += new Delegate  ....  (Form2.OnMyMouseDown) 
    在Form2 添加一个public OnMyMouseDown  
    在OnMyMouseDown 掉用 Form2.OnMouseDown
    代价不是很高
      

  8.   

    这个方法貌似很好,可是this.MouseDown += new Delegate  ....  (Form2.OnMyMouseDown)
    这句正确的格式应该怎么写,我用this.MouseDown += new Delegate(Form2.OnMyMouseDown);编译会出现错误