优化鼠标拖动
This commit is contained in:
parent
9a66260b2a
commit
55bcbba9d0
66
MainForm.cs
66
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)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user