From 55bcbba9d0e58b0ceb687a4416ee177eef6e0235 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=9A=E7=BE=8E?= <2370337237@qq.com> Date: Mon, 17 Mar 2025 23:34:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=BC=A0=E6=A0=87=E6=8B=96?= =?UTF-8?q?=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MainForm.cs | 66 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 55 insertions(+), 11 deletions(-) diff --git a/MainForm.cs b/MainForm.cs index 71392c0..dedac7c 100644 --- a/MainForm.cs +++ b/MainForm.cs @@ -118,8 +118,8 @@ namespace QuickLauncher // 左侧面板调整相关 private bool isResizing = false; - private int resizingStartX = 0; - private int initialPanelWidth = 0; + private int resizingStartX = 5; + private int initialPanelWidth = 5; private const int MIN_PANEL_WIDTH = 200; private const int MAX_PANEL_WIDTH = 500; private Panel resizeHandle; @@ -160,6 +160,14 @@ namespace QuickLauncher resizeHandle.MouseDown += ResizeHandle_MouseDown; resizeHandle.MouseMove += ResizeHandle_MouseMove; resizeHandle.MouseUp += ResizeHandle_MouseUp; + resizeHandle.MouseEnter += (s, e) => resizeHandle.Cursor = Cursors.SizeWE; + resizeHandle.MouseLeave += (s, e) => + { + if (!isResizing) + { + resizeHandle.Cursor = Cursors.SizeWE; + } + }; // 添加到左侧面板 leftPanel.Controls.Add(resizeHandle); @@ -1037,6 +1045,10 @@ namespace QuickLauncher // 捕获鼠标 resizeHandle.Capture = true; + + // 设置鼠标光标 + this.Cursor = Cursors.SizeWE; + resizeHandle.Cursor = Cursors.SizeWE; } } @@ -1059,9 +1071,6 @@ namespace QuickLauncher // 刷新布局 this.PerformLayout(); - - // 刷新分类列表,以适应新宽度 - RefreshCategoryList(); } } @@ -1070,14 +1079,37 @@ namespace QuickLauncher { if (isResizing) { - isResizing = false; - - // 释放鼠标捕获 - resizeHandle.Capture = false; - - // 保存设置 + // 先保存设置 settings.LeftPanelWidth = leftPanel.Width; SaveSettings(); + + // 在鼠标释放后刷新一次分类列表 + RefreshCategoryList(); + + // 重置调整状态 + isResizing = false; + + // 恢复默认鼠标光标 + this.Cursor = Cursors.Default; + + // 最后释放鼠标捕获 + resizeHandle.Capture = false; + + // 确保调整手柄保持正确的光标 + resizeHandle.Cursor = Cursors.SizeWE; + } + } + + // 添加窗体鼠标移动事件处理 + protected override void OnMouseMove(MouseEventArgs e) + { + base.OnMouseMove(e); + + // 如果正在调整大小,确保鼠标光标保持为调整大小状态 + if (isResizing) + { + this.Cursor = Cursors.SizeWE; + resizeHandle.Cursor = Cursors.SizeWE; } } @@ -1191,7 +1223,19 @@ namespace QuickLauncher if (categories == null) return; + // 保存resizeHandle的引用 + Panel savedResizeHandle = resizeHandle; + + // 清除所有控件,但保留resizeHandle leftPanel.Controls.Clear(); + + // 重新添加resizeHandle + if (savedResizeHandle != null) + { + leftPanel.Controls.Add(savedResizeHandle); + savedResizeHandle.BringToFront(); + } + int buttonY = 10; foreach (var category in categories.Keys)