diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs index 4110812..7499bd7 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs @@ -89,6 +89,7 @@ namespace JoyD.Windows.CS private bool _isAdjustingDetectionZone = false; // 是否正在调整检测区 private ResizeHandle _currentDetectionZoneHandle = ResizeHandle.None; // 当前检测区调整句柄 private Point _detectionZoneStartPoint; // 检测区调整开始点 + private Rectangle _originalDetectionZoneRect; // 检测区调整开始时的原始矩形 // 定时器字段 private readonly Timer _timer; @@ -1022,6 +1023,8 @@ namespace JoyD.Windows.CS // 显示修改检测区按钮和颜色选择按钮 btnModifyDetectionZone.Visible = true; btnSelectColor.Visible = true; + // 更新颜色选择按钮图标,确保显示检测区的颜色 + UpdateColorButtonIcon(); // 更新_selectedColor为检测区的颜色,并更新按钮图标 _selectedColor = _tempDetectionZone.Color; @@ -1115,6 +1118,8 @@ namespace JoyD.Windows.CS // 开始调整检测区大小 _isAdjustingDetectionZone = true; _detectionZoneStartPoint = e.Location; + // 保存原始矩形 + _originalDetectionZoneRect = controlDetectionRect; } else if (controlDetectionRect.Contains(e.Location)) { @@ -2222,8 +2227,8 @@ namespace JoyD.Windows.CS if (_currentDetectionZoneHandle != ResizeHandle.None) { - // 调整检测区大小 - Rectangle newRect = CalculateNewRectangle(controlDetectionRect, _detectionZoneStartPoint, e.Location, _currentDetectionZoneHandle); + // 调整检测区大小,使用原始矩形作为参考 + Rectangle newRect = CalculateNewRectangle(_originalDetectionZoneRect, _detectionZoneStartPoint, e.Location, _currentDetectionZoneHandle); // 确保检测区有最小尺寸 if (newRect.Width > 20 && newRect.Height > 20) @@ -4304,7 +4309,7 @@ namespace JoyD.Windows.CS } // 处理右键点击 - 退出选中状态 - if (!_isDrawingMode && e.Button == MouseButtons.Right && _selectedRegionIndex != -1) + if (!_isDrawingMode && !_isModifyingDetectionZone && e.Button == MouseButtons.Right && _selectedRegionIndex != -1) { // 取消选中状态 _selectedRegionIndex = -1; @@ -4320,7 +4325,7 @@ namespace JoyD.Windows.CS } // 仅在就绪状态(非绘制模式)下处理左键点击 - if (!_isDrawingMode && e.Button == MouseButtons.Left && picBoxTemp.Image != null && !_isResizing) + if (!_isDrawingMode && !_isModifyingDetectionZone && e.Button == MouseButtons.Left && picBoxTemp.Image != null && !_isResizing) { // 将控件坐标转换为图像坐标 Point imagePoint = ControlPointToImagePoint(e.Location);