本人是动态生成的panel,在panel用controls.add()方法添加了一些label,textbox的控件,我想要点击整个panel的点击事件,传递panel的信息,但是panel是属于底层,当点击label和textbox的时候没有反应 ,如何做?望有人指点指点。

解决方案 »

  1.   

    点击子控件的事件时引发panel的单击事件
      

  2.   

    能不能说具体点 引发panel的点击事件 可是我是通过sender传递的panel的参数 请问怎么搞呀
      

  3.   

    private void Form1_Load(object sender, EventArgs e)
            {            this.panel1.Click += new EventHandler(panel1_Click);
            }        void panel1_Click(object sender, EventArgs e)
            {
                //点击后要实现的代码。
            }
      

  4.   

    或者说能知道是点击的哪个panel也行,也就是要将点击的panel的i值通过一种方式传递到点击事件
      

  5.   

    谢谢 alldj(灵山妖姬),可是这样做的话点击那个label的时候就不会有反应了呀
      

  6.   

    你在点击label的时候,通过label1.Parent就知道是哪个panel了
      

  7.   

    private void panelClick(object sender, EventArgs e){
       DoAction();
    }private void labelClick(object sender, EventArgs e){
       DoAction();
    }private void DoAction(){
    ......//your code
    }
      

  8.   

    动态生成的,可以用control.Parent来判定是否panel
      

  9.   

    private void Form1_Load(object sender, EventArgs e)
            {            this.panel1.Click += new EventHandler(panel1_Click);
                this.label1.Click += new EventHandler(label1_Click);
            }        void panel1_Click(object sender, EventArgs e)
            {
                //点击后要实现的代码。
            }        void panel1_Click(object sender, EventArgs e)
            {
                panel1_Click(null,null);
            }
      

  10.   

    在panel里加一个方法
    void AddControl(Control ctl) 
    {
    this.Controls.Add(ctl);
    ctl.Click+=new System.EventHandler(ctl_click);
    }
    private void ctl_click(object sender,System.EventArgs e)
    {
    base.OnClick(new System.EventArgs);
    }