窗体上有一个FlowLayoutPanel控件,动态增加了多个Panel控件进去,每个控件Panel都有事件MouseHover,MouseLeave,MouseClick,如何触发FlowLayoutPanel中的Panel控件中的这几个事件

解决方案 »

  1.   


            private void button1_Click( object sender, EventArgs e )
            {
                Panel p = new Panel();
                p.BorderStyle = BorderStyle.FixedSingle;
                this.flowLayoutPanel1.Controls.Add( p );
                p.MouseEnter += new EventHandler( panel1_MouseEnter );
                p.MouseHover += new EventHandler( panel1_MouseHover );
                p.MouseLeave += new EventHandler( panel1_MouseLeave );
            }        private void panel1_MouseEnter( object sender, EventArgs e )
            {
                this.Text = "Enter";
            }        private void panel1_MouseHover( object sender, EventArgs e )
            {
                this.Text = "Hover";
            }        private void panel1_MouseLeave( object sender, EventArgs e )
            {
                this.Text = "Leave";
            }你在动态增加控件的时候,将控件的事件给加上去不就行了啊。
    设置事件不一定非得通过属性窗口的
    通过属性窗口最终也是用代码实现的
      

  2.   

    to sdfkfkd
     是的啊,我代码里就是把事件也加上去的啊,但是事情没执行的啊下面就是我的增加控件的代码
    for (int i = 0; i < rows; i++)
                        {
                            for (int j = 0; j < columns; j++)
                            {
                                Panel panel = new Panel();
                                panel.BorderStyle = BorderStyle.FixedSingle;
                                panel.Size = new Size(124, 60);
                                panel.TabIndex = tabIndex;
                                panel.Location = new Point((130 * i) + 3, (66 * j) + 3);
                                panel.MouseHover += new EventHandler(panel_MouseHover);
                                panel.MouseLeave += new EventHandler(panel_MouseLeave);
                                panel.MouseClick += new MouseEventHandler(panel_MouseClick);                            Label labelA = new Label();
                                labelA.BackColor = SystemColors.Desktop;
                                labelA.Dock = DockStyle.Top;
                                labelA.Font = new Font(new FontFamily("宋体"), 12, FontStyle.Bold);
                                labelA.ImageAlign = ContentAlignment.MiddleLeft;
                                labelA.TextAlign = ContentAlignment.MiddleRight;
                                labelA.Size = new Size(124, 30);
                                labelA.ImageList = ImgList;
                                labelA.ImageList.ImageSize = new Size(32, 32);
                                labelA.ImageIndex = 6;
                                labelA.Text = tabGrids.Rows[rowIndex]["gridId"].ToString();
                                panel.Controls.Add(labelA);                            Label labelB = new Label();
                                labelB.BackColor = SystemColors.Desktop;
                                labelB.Dock = DockStyle.Bottom;
                                labelB.Font = new Font(new FontFamily("宋体"), 12, FontStyle.Bold);
                                labelB.TextAlign = ContentAlignment.MiddleCenter;
                                labelB.Size = new Size(124, 30);
                                labelB.ForeColor = Color.White;
                                labelB.Text = tabGrids.Rows[rowIndex]["stateValue"].ToString();
                                labelB.Tag = tabGrids.Rows[rowIndex]["state"];
                                panel.Controls.Add(labelB);
                                plData.Controls.Add(panel);
                                rowIndex++;
                                if (rowIndex >= rowCount)
                                {
                                    break;
                                }
                            }
                        }
      

  3.   

    ding  ding  ding  ding  ding 
      

  4.   

    声明panel时声明panel.MouseHover += new EventHandler(panel_MouseHover),然后在方法private void panel_MouseHover( object sender, EventArgs e )
            {
                //代码
            }
    中写要执行的代码即可
      

  5.   

    to jixuesong
      大哥,我这里已经写了  panel.MouseHover += new EventHandler(panel_MouseHover);
      panel.MouseLeave += new EventHandler(panel_MouseLeave);
      panel.MouseClick += new MouseEventHandler(panel_MouseClick);对应的事件也有了,加载到FlowLayoutPanel中的Panel是有多个的,每个我都给绑定这些事件了