From d9ae13af2313bb457368185a6027547a95428b1b Mon Sep 17 00:00:00 2001 From: zqm Date: Mon, 10 Nov 2025 08:28:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=B7=A5=E5=85=B7=E6=9D=A1?= =?UTF-8?q?=E6=8B=96=E5=8A=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CS/Framework4.0/Toprie/Toprie/Setting.cs | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs index 04abb21..93ef97b 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs @@ -49,6 +49,10 @@ namespace JoyD.Windows.CS private bool _isMoving = false; private Point _startMovePoint; + // 工具条拖动相关变量 + private ToolStrip _draggedToolStrip = null; + private Point _dragStartPoint; + public Setting() { InitializeComponent(); @@ -74,6 +78,59 @@ namespace JoyD.Windows.CS { Console.WriteLine("删除按钮初始化失败: " + ex.Message); } + + // 为工具条添加拖动事件 + toolStrip.MouseDown += ToolStrip_MouseDown; + tempDiffToolStrip.MouseDown += ToolStrip_MouseDown; + toolStripContainer.ContentPanel.MouseMove += ContentPanel_MouseMove; + toolStripContainer.ContentPanel.MouseUp += ContentPanel_MouseUp; + } + + /// + /// 工具条鼠标按下事件 - 开始拖动 + /// + private void ToolStrip_MouseDown(object sender, MouseEventArgs e) + { + // 确保点击的是工具条的空白区域或标题栏 + if (e.Button == MouseButtons.Left && (e.X < toolStrip.PreferredSize.Width && e.Y < 25)) + { + _draggedToolStrip = sender as ToolStrip; + _dragStartPoint = e.Location; + _draggedToolStrip.Cursor = Cursors.SizeAll; + } + } + + /// + /// 内容面板鼠标移动事件 - 处理拖动 + /// + private void ContentPanel_MouseMove(object sender, MouseEventArgs e) + { + if (_draggedToolStrip != null) + { + // 计算新位置 + Point newLocation = toolStripContainer.ContentPanel.PointToClient(_draggedToolStrip.PointToScreen(e.Location)); + newLocation.X -= _dragStartPoint.X; + newLocation.Y -= _dragStartPoint.Y; + + // 确保位置在有效范围内 + newLocation.X = Math.Max(0, Math.Min(newLocation.X, toolStripContainer.ContentPanel.Width - _draggedToolStrip.Width)); + newLocation.Y = Math.Max(0, Math.Min(newLocation.Y, toolStripContainer.ContentPanel.Height - _draggedToolStrip.Height)); + + // 设置新位置 + _draggedToolStrip.Location = newLocation; + } + } + + /// + /// 内容面板鼠标释放事件 - 结束拖动 + /// + private void ContentPanel_MouseUp(object sender, MouseEventArgs e) + { + if (_draggedToolStrip != null) + { + _draggedToolStrip.Cursor = Cursors.Default; + _draggedToolStrip = null; + } } ///