C# WinForm 中让panel 可以在WinForm 中移动
panelContent.MouseDown += Panel_MouseDown; // 为Panel添加鼠标移动事件处理程序 panelContent.MouseMove += Panel_MouseMove; // 为Panel添加鼠标释放事件处理程序 panelContent.MouseUp += Panel_MouseUp; private Point _dragStartPoint; // 用于存储鼠标按下时的Panel位置 private void Panel_MouseDown(object sender, MouseEventArgs e) { // 当鼠标按下时,记录鼠标位置与Panel位置的偏移量 _dragStartPoint = new Point(e.X, e.Y); } private void Panel_MouseMove(object sender, MouseEventArgs e) { // 如果鼠标左键被按下 if (e.Button == MouseButtons.Left) { // 计算新的Panel位置 Point newLocation = new Point( panelContent.Left + (e.X - _dragStartPoint.X), panelContent.Top + (e.Y - _dragStartPoint.Y) ); // 设置Panel的新位置 panelContent.Location = newLocation; } } private void Panel_MouseUp(object sender, MouseEventArgs e) { // 当鼠标释放时,重置偏移量 _dragStartPoint = Point.Empty; }