修改检测区功能
This commit is contained in:
@@ -3110,14 +3110,18 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 将相对坐标转换为绝对坐标
|
||||||
|
int absoluteX = _detectionZone.X + zone.X;
|
||||||
|
int absoluteY = _detectionZone.Y + zone.Y;
|
||||||
|
|
||||||
// 创建画刷,使用区域的颜色作为文字颜色
|
// 创建画刷,使用区域的颜色作为文字颜色
|
||||||
using (Brush brush = new SolidBrush(zone.Color))
|
using (Brush brush = new SolidBrush(zone.Color))
|
||||||
{
|
{
|
||||||
// 绘制温度文本,从区域左上角开始,向下排列
|
// 绘制温度文本,从区域左上角开始,向下排列
|
||||||
float currentY = zone.Y + 20; // 从区域编号下方开始
|
float currentY = absoluteY + 20; // 从区域编号下方开始,使用绝对坐标
|
||||||
foreach (string text in areaTemperatureTexts)
|
foreach (string text in areaTemperatureTexts)
|
||||||
{
|
{
|
||||||
PointF textPosition = new PointF(zone.X + 5, currentY);
|
PointF textPosition = new PointF(absoluteX + 5, currentY);
|
||||||
g.DrawString(text, font, brush, textPosition);
|
g.DrawString(text, font, brush, textPosition);
|
||||||
currentY += 20; // 每行间隔20像素
|
currentY += 20; // 每行间隔20像素
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -981,13 +981,51 @@ namespace JoyD.Windows.CS
|
|||||||
_detectionZone.Y = _tempDetectionZone.Y;
|
_detectionZone.Y = _tempDetectionZone.Y;
|
||||||
_detectionZone.Width = _tempDetectionZone.Width;
|
_detectionZone.Width = _tempDetectionZone.Width;
|
||||||
_detectionZone.Height = _tempDetectionZone.Height;
|
_detectionZone.Height = _tempDetectionZone.Height;
|
||||||
|
_detectionZone.Color = _tempDetectionZone.Color; // 保存颜色
|
||||||
|
|
||||||
// 恢复叠加层绘制,显示测温区和温差图
|
// 恢复叠加层绘制,显示测温区和温差图
|
||||||
CreateRectangleOverlayImage();
|
CreateRectangleOverlayImage();
|
||||||
|
|
||||||
// 更新按钮可见性
|
// 在检测区修改模式下,只显示相关按钮
|
||||||
UpdateButtonsVisibility(0);
|
// 隐藏所有与检测区无关的按钮
|
||||||
|
btnDrawRegion.Visible = false; // 隐藏绘制区域按钮
|
||||||
|
btnDrawTempDiff.Visible = false; // 隐藏温差图按钮
|
||||||
|
btnDeleteRegion.Visible = false; // 隐藏删除区域按钮
|
||||||
|
|
||||||
|
// 隐藏配置相关按钮
|
||||||
|
btnNewTempRegion.Visible = false;
|
||||||
|
btnLoadTempRegion.Visible = false;
|
||||||
|
btnSaveTempRegion.Visible = false;
|
||||||
|
btnNewTempDiff.Visible = false;
|
||||||
|
btnLoadTempDiff.Visible = false;
|
||||||
|
btnSaveTempDiff.Visible = false;
|
||||||
|
|
||||||
|
// 隐藏温差图例相关按钮
|
||||||
|
btnAddTempDiff.Visible = false;
|
||||||
|
btnDeleteTempDiff.Visible = false;
|
||||||
|
|
||||||
|
// 隐藏擦除按钮
|
||||||
|
btnEraseTempDiff.Visible = false;
|
||||||
|
|
||||||
|
// 隐藏所有画笔大小按钮
|
||||||
|
btnBrushSize1.Visible = false;
|
||||||
|
btnBrushSize3.Visible = false;
|
||||||
|
btnBrushSize5.Visible = false;
|
||||||
|
btnBrushSize10.Visible = false;
|
||||||
|
btnBrushSize15.Visible = false;
|
||||||
|
btnBrushSize25.Visible = false;
|
||||||
|
|
||||||
|
// 隐藏区域编号设置控件
|
||||||
|
txtRegionNumber.Visible = false;
|
||||||
|
txtRegionNumber.Text = "";
|
||||||
|
|
||||||
|
// 显示修改检测区按钮和颜色选择按钮
|
||||||
btnModifyDetectionZone.Visible = true;
|
btnModifyDetectionZone.Visible = true;
|
||||||
|
btnSelectColor.Visible = true;
|
||||||
|
|
||||||
|
// 更新_selectedColor为检测区的颜色,并更新按钮图标
|
||||||
|
_selectedColor = _tempDetectionZone.Color;
|
||||||
|
UpdateColorButtonIcon();
|
||||||
|
|
||||||
// 刷新绘制
|
// 刷新绘制
|
||||||
picBoxTemp.Invalidate();
|
picBoxTemp.Invalidate();
|
||||||
@@ -1087,7 +1125,7 @@ namespace JoyD.Windows.CS
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 处理选中区域的调整大小或移动
|
// 处理选中区域的调整大小或移动
|
||||||
else if (e.Button == MouseButtons.Left && !_isDrawingMode && _selectedRegionIndex != -1)
|
else if (e.Button == MouseButtons.Left && !_isDrawingMode && !_isModifyingDetectionZone && _selectedRegionIndex != -1)
|
||||||
{
|
{
|
||||||
RegionInfo selectedRegion = _drawnRectangles.FirstOrDefault(r => r.Index == _selectedRegionIndex);
|
RegionInfo selectedRegion = _drawnRectangles.FirstOrDefault(r => r.Index == _selectedRegionIndex);
|
||||||
if (selectedRegion != null)
|
if (selectedRegion != null)
|
||||||
@@ -1213,6 +1251,7 @@ namespace JoyD.Windows.CS
|
|||||||
btnDrawTempDiff.Visible = true; // 显示温差图按钮
|
btnDrawTempDiff.Visible = true; // 显示温差图按钮
|
||||||
btnSelectColor.Visible = false; // 隐藏颜色选择按钮
|
btnSelectColor.Visible = false; // 隐藏颜色选择按钮
|
||||||
btnDeleteRegion.Visible = false; // 隐藏删除区域按钮
|
btnDeleteRegion.Visible = false; // 隐藏删除区域按钮
|
||||||
|
btnModifyDetectionZone.Visible = true; // 显示修改检测区按钮
|
||||||
// 根据自动配置状态显示/隐藏六个新按钮
|
// 根据自动配置状态显示/隐藏六个新按钮
|
||||||
bool showConfigButtons = !_autoConfig;
|
bool showConfigButtons = !_autoConfig;
|
||||||
btnNewTempRegion.Visible = showConfigButtons;
|
btnNewTempRegion.Visible = showConfigButtons;
|
||||||
@@ -1245,6 +1284,7 @@ namespace JoyD.Windows.CS
|
|||||||
btnDrawRegion.Visible = true; // 显示绘制区域按钮
|
btnDrawRegion.Visible = true; // 显示绘制区域按钮
|
||||||
btnDeleteRegion.Visible = false; // 隐藏删除区域按钮
|
btnDeleteRegion.Visible = false; // 隐藏删除区域按钮
|
||||||
btnDrawTempDiff.Visible = false; // 隐藏温差图按钮
|
btnDrawTempDiff.Visible = false; // 隐藏温差图按钮
|
||||||
|
btnModifyDetectionZone.Visible = false; // 隐藏修改检测区按钮
|
||||||
dataGridViewTempDiff.Visible = false; // 隐藏温差图例表格
|
dataGridViewTempDiff.Visible = false; // 隐藏温差图例表格
|
||||||
dataGridViewTempDiff.ReadOnly = true; // 绘制状态下设置为只读
|
dataGridViewTempDiff.ReadOnly = true; // 绘制状态下设置为只读
|
||||||
btnAddTempDiff.Visible = false; // 隐藏添加温差图例按钮
|
btnAddTempDiff.Visible = false; // 隐藏添加温差图例按钮
|
||||||
@@ -1279,6 +1319,7 @@ namespace JoyD.Windows.CS
|
|||||||
btnDrawTempDiff.Visible = false; // 隐藏温差图按钮
|
btnDrawTempDiff.Visible = false; // 隐藏温差图按钮
|
||||||
btnSelectColor.Visible = true; // 显示颜色选择按钮
|
btnSelectColor.Visible = true; // 显示颜色选择按钮
|
||||||
btnDeleteRegion.Visible = true; // 显示删除区域按钮
|
btnDeleteRegion.Visible = true; // 显示删除区域按钮
|
||||||
|
btnModifyDetectionZone.Visible = false; // 隐藏修改检测区按钮
|
||||||
dataGridViewTempDiff.Visible = false; // 隐藏温差图例表格
|
dataGridViewTempDiff.Visible = false; // 隐藏温差图例表格
|
||||||
btnAddTempDiff.Visible = false; // 隐藏添加温差图例按钮
|
btnAddTempDiff.Visible = false; // 隐藏添加温差图例按钮
|
||||||
btnDeleteTempDiff.Visible = false; // 隐藏删除温差图例按钮
|
btnDeleteTempDiff.Visible = false; // 隐藏删除温差图例按钮
|
||||||
@@ -1317,6 +1358,7 @@ namespace JoyD.Windows.CS
|
|||||||
btnDrawRegion.Visible = false; // 隐藏绘制区域按钮
|
btnDrawRegion.Visible = false; // 隐藏绘制区域按钮
|
||||||
btnSelectColor.Visible = false; // 隐藏颜色选择按钮
|
btnSelectColor.Visible = false; // 隐藏颜色选择按钮
|
||||||
btnDeleteRegion.Visible = false; // 隐藏删除区域按钮
|
btnDeleteRegion.Visible = false; // 隐藏删除区域按钮
|
||||||
|
btnModifyDetectionZone.Visible = false; // 隐藏修改检测区按钮
|
||||||
dataGridViewTempDiff.Visible = true; // 显示温差图例表格
|
dataGridViewTempDiff.Visible = true; // 显示温差图例表格
|
||||||
dataGridViewTempDiff.ReadOnly = false; // 温差图绘制状态下可编辑
|
dataGridViewTempDiff.ReadOnly = false; // 温差图绘制状态下可编辑
|
||||||
btnAddTempDiff.Visible = true; // 显示添加温差图例按钮
|
btnAddTempDiff.Visible = true; // 显示添加温差图例按钮
|
||||||
@@ -1365,6 +1407,24 @@ namespace JoyD.Windows.CS
|
|||||||
_isTempDiffDrawingMode = !_isTempDiffDrawingMode;
|
_isTempDiffDrawingMode = !_isTempDiffDrawingMode;
|
||||||
btnDrawTempDiff.Checked = _isTempDiffDrawingMode;
|
btnDrawTempDiff.Checked = _isTempDiffDrawingMode;
|
||||||
|
|
||||||
|
// 确保模式互斥:进入温差图模式前退出检测区修改模式
|
||||||
|
if (_isTempDiffDrawingMode && _isModifyingDetectionZone)
|
||||||
|
{
|
||||||
|
// 退出检测区修改模式
|
||||||
|
_isModifyingDetectionZone = false;
|
||||||
|
btnModifyDetectionZone.Checked = false;
|
||||||
|
btnModifyDetectionZone.ToolTipText = "修改检测区(点击开启)";
|
||||||
|
|
||||||
|
// 恢复叠加层绘制,显示测温区和温差图
|
||||||
|
CreateRectangleOverlayImage();
|
||||||
|
|
||||||
|
// 更新按钮可见性
|
||||||
|
UpdateButtonsVisibility(0);
|
||||||
|
btnModifyDetectionZone.Visible = true;
|
||||||
|
// 隐藏颜色选择按钮
|
||||||
|
btnSelectColor.Visible = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (_isTempDiffDrawingMode)
|
if (_isTempDiffDrawingMode)
|
||||||
{
|
{
|
||||||
// 进入温差图绘制状态
|
// 进入温差图绘制状态
|
||||||
@@ -1668,6 +1728,33 @@ namespace JoyD.Windows.CS
|
|||||||
|
|
||||||
if (_isDrawingMode)
|
if (_isDrawingMode)
|
||||||
{
|
{
|
||||||
|
// 确保模式互斥:进入测温区模式前退出其他模式
|
||||||
|
|
||||||
|
// 退出温差图模式
|
||||||
|
if (_isTempDiffDrawingMode)
|
||||||
|
{
|
||||||
|
_isTempDiffDrawingMode = false;
|
||||||
|
btnDrawTempDiff.Checked = false;
|
||||||
|
ExitTempDiffDrawingMode();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 退出检测区修改模式
|
||||||
|
if (_isModifyingDetectionZone)
|
||||||
|
{
|
||||||
|
_isModifyingDetectionZone = false;
|
||||||
|
btnModifyDetectionZone.Checked = false;
|
||||||
|
btnModifyDetectionZone.ToolTipText = "修改检测区(点击开启)";
|
||||||
|
|
||||||
|
// 恢复叠加层绘制,显示测温区和温差图
|
||||||
|
CreateRectangleOverlayImage();
|
||||||
|
|
||||||
|
// 更新按钮可见性
|
||||||
|
UpdateButtonsVisibility(0);
|
||||||
|
btnModifyDetectionZone.Visible = true;
|
||||||
|
// 隐藏颜色选择按钮
|
||||||
|
btnSelectColor.Visible = false;
|
||||||
|
}
|
||||||
|
|
||||||
// 启用绘制模式
|
// 启用绘制模式
|
||||||
picBoxTemp.Cursor = Cursors.Cross;
|
picBoxTemp.Cursor = Cursors.Cross;
|
||||||
btnDrawRegion.ToolTipText = "绘制模式已启用,点击图片区域绘制矩形框(点击关闭)";
|
btnDrawRegion.ToolTipText = "绘制模式已启用,点击图片区域绘制矩形框(点击关闭)";
|
||||||
@@ -2177,7 +2264,7 @@ namespace JoyD.Windows.CS
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 处理调整大小
|
// 处理调整大小
|
||||||
if (_isResizing && !_isDrawingMode && _selectedRegionIndex != -1)
|
if (_isResizing && !_isDrawingMode && !_isModifyingDetectionZone && _selectedRegionIndex != -1)
|
||||||
{
|
{
|
||||||
RegionInfo selectedRegion = _drawnRectangles.FirstOrDefault(r => r.Index == _selectedRegionIndex);
|
RegionInfo selectedRegion = _drawnRectangles.FirstOrDefault(r => r.Index == _selectedRegionIndex);
|
||||||
if (selectedRegion != null)
|
if (selectedRegion != null)
|
||||||
@@ -2208,7 +2295,7 @@ namespace JoyD.Windows.CS
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 处理移动区域
|
// 处理移动区域
|
||||||
else if (_isMoving && !_isDrawingMode && _selectedRegionIndex != -1)
|
else if (_isMoving && !_isDrawingMode && !_isModifyingDetectionZone && _selectedRegionIndex != -1)
|
||||||
{
|
{
|
||||||
RegionInfo selectedRegion = _drawnRectangles.FirstOrDefault(r => r.Index == _selectedRegionIndex);
|
RegionInfo selectedRegion = _drawnRectangles.FirstOrDefault(r => r.Index == _selectedRegionIndex);
|
||||||
if (selectedRegion != null)
|
if (selectedRegion != null)
|
||||||
@@ -2266,8 +2353,43 @@ namespace JoyD.Windows.CS
|
|||||||
// 处理鼠标悬停(更新光标或检测悬停区域)
|
// 处理鼠标悬停(更新光标或检测悬停区域)
|
||||||
else if (!_isDrawingMode && !_isDrawing && !_isResizing) // 就绪状态
|
else if (!_isDrawingMode && !_isDrawing && !_isResizing) // 就绪状态
|
||||||
{
|
{
|
||||||
// 如果有选中的区域,检查是否悬停在句柄上
|
// 检测区修改模式下的鼠标样式处理
|
||||||
if (_selectedRegionIndex != -1)
|
if (_isModifyingDetectionZone)
|
||||||
|
{
|
||||||
|
// 将检测区坐标转换为控件坐标
|
||||||
|
Rectangle controlDetectionRect = ImageRectangleToControlRectangle(new Rectangle(
|
||||||
|
_tempDetectionZone.X,
|
||||||
|
_tempDetectionZone.Y,
|
||||||
|
_tempDetectionZone.Width,
|
||||||
|
_tempDetectionZone.Height));
|
||||||
|
|
||||||
|
// 检测鼠标是否在检测区的某个句柄上
|
||||||
|
ResizeHandle hoveredHandle = GetHoveredHandle(controlDetectionRect, e.Location);
|
||||||
|
|
||||||
|
if (hoveredHandle != ResizeHandle.None)
|
||||||
|
{
|
||||||
|
// 设置相应的光标
|
||||||
|
SetCursorByHandle(hoveredHandle);
|
||||||
|
_currentDetectionZoneHandle = hoveredHandle;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (controlDetectionRect.Contains(e.Location))
|
||||||
|
{
|
||||||
|
// 如果鼠标在检测区内但不在句柄上,设置移动光标
|
||||||
|
picBoxTemp.Cursor = Cursors.SizeAll;
|
||||||
|
_currentDetectionZoneHandle = ResizeHandle.None;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 重置光标
|
||||||
|
picBoxTemp.Cursor = Cursors.Default;
|
||||||
|
_currentDetectionZoneHandle = ResizeHandle.None;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 如果有选中的区域,且不在检测区修改模式下,检查是否悬停在句柄上
|
||||||
|
if (!_isModifyingDetectionZone && _selectedRegionIndex != -1)
|
||||||
{
|
{
|
||||||
RegionInfo selectedRegion = _drawnRectangles.FirstOrDefault(r => r.Index == _selectedRegionIndex);
|
RegionInfo selectedRegion = _drawnRectangles.FirstOrDefault(r => r.Index == _selectedRegionIndex);
|
||||||
if (selectedRegion != null)
|
if (selectedRegion != null)
|
||||||
@@ -2289,8 +2411,8 @@ namespace JoyD.Windows.CS
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果没有悬停在句柄上,检查是否悬停在区域上
|
// 如果没有悬停在句柄上,且不在检测区修改模式下,检查是否悬停在区域上
|
||||||
if (_currentHandle == ResizeHandle.None && !_isMoving)
|
if (!_isModifyingDetectionZone && _currentHandle == ResizeHandle.None && !_isMoving)
|
||||||
{
|
{
|
||||||
// 将鼠标坐标转换为图像坐标
|
// 将鼠标坐标转换为图像坐标
|
||||||
Point imagePoint = ControlPointToImagePoint(e.Location);
|
Point imagePoint = ControlPointToImagePoint(e.Location);
|
||||||
@@ -2531,7 +2653,7 @@ namespace JoyD.Windows.CS
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 结束调整大小
|
// 结束调整大小
|
||||||
if (_isResizing && e.Button == MouseButtons.Left)
|
if (_isResizing && !_isModifyingDetectionZone && e.Button == MouseButtons.Left)
|
||||||
{
|
{
|
||||||
_isResizing = false;
|
_isResizing = false;
|
||||||
_currentHandle = ResizeHandle.None;
|
_currentHandle = ResizeHandle.None;
|
||||||
@@ -2548,7 +2670,7 @@ namespace JoyD.Windows.CS
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 结束移动区域
|
// 结束移动区域
|
||||||
if (_isMoving && e.Button == MouseButtons.Left)
|
if (_isMoving && !_isModifyingDetectionZone && e.Button == MouseButtons.Left)
|
||||||
{
|
{
|
||||||
_isMoving = false;
|
_isMoving = false;
|
||||||
picBoxTemp.Cursor = Cursors.Default;
|
picBoxTemp.Cursor = Cursors.Default;
|
||||||
@@ -2652,7 +2774,7 @@ namespace JoyD.Windows.CS
|
|||||||
Rectangle controlDetectionRect = ImageRectangleToControlRectangle(detectionRect);
|
Rectangle controlDetectionRect = ImageRectangleToControlRectangle(detectionRect);
|
||||||
|
|
||||||
// 高亮显示检测区
|
// 高亮显示检测区
|
||||||
using (Pen pen = new Pen(Color.Red, 3))
|
using (Pen pen = new Pen(_tempDetectionZone.Color, 3))
|
||||||
{
|
{
|
||||||
// 设置绘制质量为无抗锯齿,确保边界清晰
|
// 设置绘制质量为无抗锯齿,确保边界清晰
|
||||||
e.Graphics.SmoothingMode = SmoothingMode.None;
|
e.Graphics.SmoothingMode = SmoothingMode.None;
|
||||||
@@ -3388,8 +3510,15 @@ namespace JoyD.Windows.CS
|
|||||||
// 绘制边框
|
// 绘制边框
|
||||||
g.DrawRectangle(new Pen(Color.Black, 1), 3, 3, 18, 18);
|
g.DrawRectangle(new Pen(Color.Black, 1), 3, 3, 18, 18);
|
||||||
|
|
||||||
// 使用_selectedColor填充矩形
|
// 根据当前模式选择颜色
|
||||||
using (SolidBrush brush = new SolidBrush(_selectedColor))
|
Color displayColor = _selectedColor;
|
||||||
|
if (_isModifyingDetectionZone)
|
||||||
|
{
|
||||||
|
displayColor = _tempDetectionZone.Color;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 使用选择的颜色填充矩形
|
||||||
|
using (SolidBrush brush = new SolidBrush(displayColor))
|
||||||
{
|
{
|
||||||
g.FillRectangle(brush, 4, 4, 16, 16);
|
g.FillRectangle(brush, 4, 4, 16, 16);
|
||||||
}
|
}
|
||||||
@@ -3414,8 +3543,15 @@ namespace JoyD.Windows.CS
|
|||||||
{
|
{
|
||||||
using (ColorDialog colorDialog = new ColorDialog())
|
using (ColorDialog colorDialog = new ColorDialog())
|
||||||
{
|
{
|
||||||
// 设置初始颜色为当前选中的颜色
|
// 根据当前模式设置初始颜色
|
||||||
|
if (_isModifyingDetectionZone)
|
||||||
|
{
|
||||||
|
colorDialog.Color = _tempDetectionZone.Color;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
colorDialog.Color = _selectedColor;
|
colorDialog.Color = _selectedColor;
|
||||||
|
}
|
||||||
|
|
||||||
// 允许自定义颜色
|
// 允许自定义颜色
|
||||||
colorDialog.AllowFullOpen = true;
|
colorDialog.AllowFullOpen = true;
|
||||||
@@ -3430,8 +3566,13 @@ namespace JoyD.Windows.CS
|
|||||||
// 更新按钮图标,显示新选择的颜色
|
// 更新按钮图标,显示新选择的颜色
|
||||||
UpdateColorButtonIcon();
|
UpdateColorButtonIcon();
|
||||||
|
|
||||||
|
// 检测区修改模式下,更新检测区的颜色
|
||||||
|
if (_isModifyingDetectionZone)
|
||||||
|
{
|
||||||
|
_tempDetectionZone.Color = _selectedColor;
|
||||||
|
}
|
||||||
// 如果有区域被选中,更新该区域的颜色
|
// 如果有区域被选中,更新该区域的颜色
|
||||||
if (_selectedRegionIndex != -1)
|
else if (_selectedRegionIndex != -1)
|
||||||
{
|
{
|
||||||
RegionInfo selectedRegion = _drawnRectangles.FirstOrDefault(r => r.Index == _selectedRegionIndex);
|
RegionInfo selectedRegion = _drawnRectangles.FirstOrDefault(r => r.Index == _selectedRegionIndex);
|
||||||
if (selectedRegion != null)
|
if (selectedRegion != null)
|
||||||
@@ -3442,7 +3583,7 @@ namespace JoyD.Windows.CS
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 重绘图片区域,显示新颜色的矩形
|
// 重绘图片区域,显示新颜色的矩形或检测区
|
||||||
picBoxTemp.Invalidate();
|
picBoxTemp.Invalidate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4851,6 +4992,29 @@ namespace JoyD.Windows.CS
|
|||||||
_isModifyingDetectionZone = !_isModifyingDetectionZone;
|
_isModifyingDetectionZone = !_isModifyingDetectionZone;
|
||||||
btnModifyDetectionZone.Checked = _isModifyingDetectionZone;
|
btnModifyDetectionZone.Checked = _isModifyingDetectionZone;
|
||||||
|
|
||||||
|
// 确保模式互斥:进入检测区修改模式前退出其他模式
|
||||||
|
if (_isModifyingDetectionZone)
|
||||||
|
{
|
||||||
|
// 退出温差图模式
|
||||||
|
if (_isTempDiffDrawingMode)
|
||||||
|
{
|
||||||
|
_isTempDiffDrawingMode = false;
|
||||||
|
btnDrawTempDiff.Checked = false;
|
||||||
|
ExitTempDiffDrawingMode();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 退出测温区模式(绘制状态)
|
||||||
|
if (_isDrawingMode || _isDrawing)
|
||||||
|
{
|
||||||
|
_isDrawingMode = false;
|
||||||
|
_isDrawing = false;
|
||||||
|
btnDrawRegion.Checked = false;
|
||||||
|
btnDrawRegion.ToolTipText = "绘制区域(点击开启)";
|
||||||
|
UpdateButtonsVisibility(0);
|
||||||
|
picBoxTemp.Invalidate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (_isModifyingDetectionZone)
|
if (_isModifyingDetectionZone)
|
||||||
{
|
{
|
||||||
// 进入修改模式
|
// 进入修改模式
|
||||||
@@ -4888,9 +5052,42 @@ namespace JoyD.Windows.CS
|
|||||||
// 隐藏温差图例表格
|
// 隐藏温差图例表格
|
||||||
dataGridViewTempDiff.Visible = false;
|
dataGridViewTempDiff.Visible = false;
|
||||||
|
|
||||||
// 更新按钮可见性
|
// 在检测区修改模式下,只显示相关按钮
|
||||||
UpdateButtonsVisibility(0);
|
// 隐藏所有与检测区无关的按钮
|
||||||
|
btnDrawRegion.Visible = false; // 隐藏绘制区域按钮
|
||||||
|
btnDrawTempDiff.Visible = false; // 隐藏温差图按钮
|
||||||
|
btnDeleteRegion.Visible = false; // 隐藏删除区域按钮
|
||||||
|
|
||||||
|
// 隐藏配置相关按钮
|
||||||
|
btnNewTempRegion.Visible = false;
|
||||||
|
btnLoadTempRegion.Visible = false;
|
||||||
|
btnSaveTempRegion.Visible = false;
|
||||||
|
btnNewTempDiff.Visible = false;
|
||||||
|
btnLoadTempDiff.Visible = false;
|
||||||
|
btnSaveTempDiff.Visible = false;
|
||||||
|
|
||||||
|
// 隐藏温差图例相关按钮
|
||||||
|
btnAddTempDiff.Visible = false;
|
||||||
|
btnDeleteTempDiff.Visible = false;
|
||||||
|
|
||||||
|
// 隐藏擦除按钮
|
||||||
|
btnEraseTempDiff.Visible = false;
|
||||||
|
|
||||||
|
// 隐藏所有画笔大小按钮
|
||||||
|
btnBrushSize1.Visible = false;
|
||||||
|
btnBrushSize3.Visible = false;
|
||||||
|
btnBrushSize5.Visible = false;
|
||||||
|
btnBrushSize10.Visible = false;
|
||||||
|
btnBrushSize15.Visible = false;
|
||||||
|
btnBrushSize25.Visible = false;
|
||||||
|
|
||||||
|
// 隐藏区域编号设置控件
|
||||||
|
txtRegionNumber.Visible = false;
|
||||||
|
txtRegionNumber.Text = "";
|
||||||
|
|
||||||
|
// 显示修改检测区按钮和颜色选择按钮
|
||||||
btnModifyDetectionZone.Visible = true;
|
btnModifyDetectionZone.Visible = true;
|
||||||
|
btnSelectColor.Visible = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -4909,6 +5106,8 @@ namespace JoyD.Windows.CS
|
|||||||
// 更新按钮可见性
|
// 更新按钮可见性
|
||||||
UpdateButtonsVisibility(0);
|
UpdateButtonsVisibility(0);
|
||||||
btnModifyDetectionZone.Visible = true;
|
btnModifyDetectionZone.Visible = true;
|
||||||
|
// 隐藏颜色选择按钮
|
||||||
|
btnSelectColor.Visible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 刷新绘制
|
// 刷新绘制
|
||||||
|
|||||||
Reference in New Issue
Block a user