优化鼠标拖动
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 bool isResizing = false;
|
||||||
private int resizingStartX = 0;
|
private int resizingStartX = 5;
|
||||||
private int initialPanelWidth = 0;
|
private int initialPanelWidth = 5;
|
||||||
private const int MIN_PANEL_WIDTH = 200;
|
private const int MIN_PANEL_WIDTH = 200;
|
||||||
private const int MAX_PANEL_WIDTH = 500;
|
private const int MAX_PANEL_WIDTH = 500;
|
||||||
private Panel resizeHandle;
|
private Panel resizeHandle;
|
||||||
@ -160,6 +160,14 @@ namespace QuickLauncher
|
|||||||
resizeHandle.MouseDown += ResizeHandle_MouseDown;
|
resizeHandle.MouseDown += ResizeHandle_MouseDown;
|
||||||
resizeHandle.MouseMove += ResizeHandle_MouseMove;
|
resizeHandle.MouseMove += ResizeHandle_MouseMove;
|
||||||
resizeHandle.MouseUp += ResizeHandle_MouseUp;
|
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);
|
leftPanel.Controls.Add(resizeHandle);
|
||||||
@ -1037,6 +1045,10 @@ namespace QuickLauncher
|
|||||||
|
|
||||||
// 捕获鼠标
|
// 捕获鼠标
|
||||||
resizeHandle.Capture = true;
|
resizeHandle.Capture = true;
|
||||||
|
|
||||||
|
// 设置鼠标光标
|
||||||
|
this.Cursor = Cursors.SizeWE;
|
||||||
|
resizeHandle.Cursor = Cursors.SizeWE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1059,9 +1071,6 @@ namespace QuickLauncher
|
|||||||
|
|
||||||
// 刷新布局
|
// 刷新布局
|
||||||
this.PerformLayout();
|
this.PerformLayout();
|
||||||
|
|
||||||
// 刷新分类列表,以适应新宽度
|
|
||||||
RefreshCategoryList();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1070,14 +1079,37 @@ namespace QuickLauncher
|
|||||||
{
|
{
|
||||||
if (isResizing)
|
if (isResizing)
|
||||||
{
|
{
|
||||||
isResizing = false;
|
// 先保存设置
|
||||||
|
|
||||||
// 释放鼠标捕获
|
|
||||||
resizeHandle.Capture = false;
|
|
||||||
|
|
||||||
// 保存设置
|
|
||||||
settings.LeftPanelWidth = leftPanel.Width;
|
settings.LeftPanelWidth = leftPanel.Width;
|
||||||
SaveSettings();
|
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)
|
if (categories == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// 保存resizeHandle的引用
|
||||||
|
Panel savedResizeHandle = resizeHandle;
|
||||||
|
|
||||||
|
// 清除所有控件,但保留resizeHandle
|
||||||
leftPanel.Controls.Clear();
|
leftPanel.Controls.Clear();
|
||||||
|
|
||||||
|
// 重新添加resizeHandle
|
||||||
|
if (savedResizeHandle != null)
|
||||||
|
{
|
||||||
|
leftPanel.Controls.Add(savedResizeHandle);
|
||||||
|
savedResizeHandle.BringToFront();
|
||||||
|
}
|
||||||
|
|
||||||
int buttonY = 10;
|
int buttonY = 10;
|
||||||
|
|
||||||
foreach (var category in categories.Keys)
|
foreach (var category in categories.Keys)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user