实现选中区域时显示删除按钮的功能
This commit is contained in:
@@ -151,3 +151,4 @@
|
|||||||
5. 当btnDrawRegion按下后,处于绘制状态, btnSelectColor才显示出来
|
5. 当btnDrawRegion按下后,处于绘制状态, btnSelectColor才显示出来
|
||||||
6. 当就绪状态时,鼠标移到区域内,该区域内填充半透明色,当有多个重叠时,填充索引号最大的区域
|
6. 当就绪状态时,鼠标移到区域内,该区域内填充半透明色,当有多个重叠时,填充索引号最大的区域
|
||||||
7. 当鼠标在半透明区域内单击时,该区域填充半透明色,且显示八个句柄,表示选中该区域。
|
7. 当鼠标在半透明区域内单击时,该区域填充半透明色,且显示八个句柄,表示选中该区域。
|
||||||
|
8. 选中区域时,工具栏显示删除按钮。
|
||||||
@@ -62,6 +62,19 @@ namespace JoyD.Windows.CS
|
|||||||
|
|
||||||
// 初始隐藏颜色选择按钮,只有在绘制模式下才显示
|
// 初始隐藏颜色选择按钮,只有在绘制模式下才显示
|
||||||
btnSelectColor.Visible = false;
|
btnSelectColor.Visible = false;
|
||||||
|
|
||||||
|
// 初始化删除按钮
|
||||||
|
// 假设表单设计器中已有一个名为btnDeleteRegion的按钮
|
||||||
|
try
|
||||||
|
{
|
||||||
|
btnDeleteRegion.Click += BtnDeleteRegion_Click;
|
||||||
|
// 初始隐藏删除按钮,只有在选中区域时才显示
|
||||||
|
btnDeleteRegion.Visible = false;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine("删除按钮初始化失败: " + ex.Message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -582,6 +595,35 @@ namespace JoyD.Windows.CS
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 删除按钮点击事件
|
||||||
|
/// </summary>
|
||||||
|
private void BtnDeleteRegion_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// 确保有选中的区域
|
||||||
|
if (_selectedRegionIndex != -1)
|
||||||
|
{
|
||||||
|
// 查找并移除选中的区域
|
||||||
|
RegionInfo regionToRemove = _drawnRectangles.FirstOrDefault(r => r.Index == _selectedRegionIndex);
|
||||||
|
if (regionToRemove != null)
|
||||||
|
{
|
||||||
|
_drawnRectangles.Remove(regionToRemove);
|
||||||
|
|
||||||
|
// 取消选中状态
|
||||||
|
_selectedRegionIndex = -1;
|
||||||
|
|
||||||
|
// 隐藏删除按钮
|
||||||
|
btnDeleteRegion.Visible = false;
|
||||||
|
|
||||||
|
// 重绘叠加层
|
||||||
|
CreateRectangleOverlayImage();
|
||||||
|
|
||||||
|
// 触发重绘
|
||||||
|
picBoxTemp.Invalidate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 窗口关闭时停止定时器并释放资源
|
/// 窗口关闭时停止定时器并释放资源
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -685,6 +727,16 @@ namespace JoyD.Windows.CS
|
|||||||
_selectedRegionIndex = -1;
|
_selectedRegionIndex = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 更新删除按钮的可见性
|
||||||
|
try
|
||||||
|
{
|
||||||
|
btnDeleteRegion.Visible = (_selectedRegionIndex != -1);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine("更新删除按钮可见性失败: " + ex.Message);
|
||||||
|
}
|
||||||
|
|
||||||
// 刷新绘制
|
// 刷新绘制
|
||||||
picBoxTemp.Invalidate();
|
picBoxTemp.Invalidate();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user