From 4b706826b403c3bbc638cb291d67ffa7de2a8919 Mon Sep 17 00:00:00 2001 From: zqm Date: Fri, 7 Nov 2025 10:41:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E9=80=89=E4=B8=AD=E5=8C=BA?= =?UTF-8?q?=E5=9F=9F=E6=97=B6=E6=98=BE=E7=A4=BA=E5=88=A0=E9=99=A4=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E7=9A=84=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/README.md | 3 +- .../CS/Framework4.0/Toprie/Toprie/Setting.cs | 52 +++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/README.md b/Windows/CS/Framework4.0/Toprie/Toprie/README.md index bbfce11..d59f0a7 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/README.md +++ b/Windows/CS/Framework4.0/Toprie/Toprie/README.md @@ -150,4 +150,5 @@ 4. 保存的矩形框位置和大小信息应该是相对于图像的,而不是相对于控件的。 5. 当btnDrawRegion按下后,处于绘制状态, btnSelectColor才显示出来 6. 当就绪状态时,鼠标移到区域内,该区域内填充半透明色,当有多个重叠时,填充索引号最大的区域 -7. 当鼠标在半透明区域内单击时,该区域填充半透明色,且显示八个句柄,表示选中该区域。 \ No newline at end of file +7. 当鼠标在半透明区域内单击时,该区域填充半透明色,且显示八个句柄,表示选中该区域。 +8. 选中区域时,工具栏显示删除按钮。 \ No newline at end of file diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs index 7098e8c..0a62305 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs @@ -62,6 +62,19 @@ namespace JoyD.Windows.CS // 初始隐藏颜色选择按钮,只有在绘制模式下才显示 btnSelectColor.Visible = false; + + // 初始化删除按钮 + // 假设表单设计器中已有一个名为btnDeleteRegion的按钮 + try + { + btnDeleteRegion.Click += BtnDeleteRegion_Click; + // 初始隐藏删除按钮,只有在选中区域时才显示 + btnDeleteRegion.Visible = false; + } + catch (Exception ex) + { + Console.WriteLine("删除按钮初始化失败: " + ex.Message); + } } /// @@ -582,6 +595,35 @@ namespace JoyD.Windows.CS } } + /// + /// 删除按钮点击事件 + /// + 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(); + } + } + } + /// /// 窗口关闭时停止定时器并释放资源 /// @@ -685,6 +727,16 @@ namespace JoyD.Windows.CS _selectedRegionIndex = -1; } + // 更新删除按钮的可见性 + try + { + btnDeleteRegion.Visible = (_selectedRegionIndex != -1); + } + catch (Exception ex) + { + Console.WriteLine("更新删除按钮可见性失败: " + ex.Message); + } + // 刷新绘制 picBoxTemp.Invalidate(); }