面板上的鼠标移动事件-c#winform

面板上的鼠标移动事件-c#winform,c#,winforms,panel,onmousemove,C#,Winforms,Panel,Onmousemove,我有一个包含按钮的面板。我想把这个面板用鼠标移过去。我试过像下面这样。 但当鼠标放在按钮上方时,面板不会移动。仅当鼠标位于面板上时工作。 我必须使它在面板的任何一点上工作,而不考虑其中的控制 this.panelLeft.Controls.Add(this.button1); this.panelLeft.Location = new System.Drawing.Point(21, 171); this.panelLeft.Name = "pan

我有一个包含按钮的面板。我想把这个面板用鼠标移过去。我试过像下面这样。 但当鼠标放在按钮上方时,面板不会移动。仅当鼠标位于面板上时工作。 我必须使它在面板的任何一点上工作,而不考虑其中的控制

        this.panelLeft.Controls.Add(this.button1);
        this.panelLeft.Location = new System.Drawing.Point(21, 171);
        this.panelLeft.Name = "panelLeft";
        this.panelLeft.Size = new System.Drawing.Size(662, 324);
        this.panelLeft.TabIndex = 15;
        this.panelLeft.MouseDown += new System.Windows.Forms.MouseEventHandler(this.panelLeft_MouseDown);
        this.panelLeft.MouseMove += new System.Windows.Forms.MouseEventHandler(this.panelLeft_MouseMove);

   private void panelLeft_MouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == System.Windows.Forms.MouseButtons.Left)
        {
            MouseDownLocation = e.Location;
        }
    }
    private void panelLeft_MouseMove(object sender, MouseEventArgs e)
    {
        if (e.Button == System.Windows.Forms.MouseButtons.Left)
        {
            panelLeft.Left = e.X + panelLeft.Left - MouseDownLocation.X;
            panelLeft.Top = e.Y + panelLeft.Top - MouseDownLocation.Y;
        }
    }

因为事件处理程序仅为面板添加 向按钮添加相同的代码

Btn.MouseDown+=panelleleft\u MouseDown;

或在面板内的每个控件上循环,并将事件处理程序分配给它们

,因为事件处理程序仅为面板添加 向按钮添加相同的代码

Btn.MouseDown+=panelleleft\u MouseDown;
或在面板内的每个控件上循环,并将事件处理程序分配给它们