修复README.md序号问题和更新Setting.cs中工具栏分隔条可见性管理

This commit is contained in:
zqm
2025-11-11 13:40:35 +08:00
parent 1537732f0c
commit 33013c84d8
2 changed files with 77 additions and 35 deletions

View File

@@ -150,18 +150,19 @@
4. 保存的矩形框位置和大小信息应该是相对于图像的,而不是相对于控件的。 4. 保存的矩形框位置和大小信息应该是相对于图像的,而不是相对于控件的。
5. 当btnDrawRegion按下后处于绘制状态 btnSelectColor才显示出来 5. 当btnDrawRegion按下后处于绘制状态 btnSelectColor才显示出来
6. 当绘制状态时,右击鼠标,退出绘制状态,且清除所有临时绘制。 6. 当绘制状态时,右击鼠标,退出绘制状态,且清除所有临时绘制。
7.就绪状态时,鼠标移到区域内,该区域内填充半透明色,当有多个重叠时,填充索引号最大的区域 7.绘制状态时,双击鼠标,随机生成一个颜色,用于绘制矩形框。
8.鼠标在半透明区域内单击时,该区域填充半透明色,且显示八个句柄,表示选中该区域 8.就绪状态时,鼠标移到区域内,该区域填充半透明色,当有多个重叠时,填充索引号最大的区域
9. 选中区域时工具栏显示按钮btnDeleteRegion和btnSelectColor;隐藏btnDrawRegion 9. 当鼠标在半透明区域内单击时,该区域填充半透明色,且显示八个句柄,表示选中该区域
10. 选中区域时,btnSelectColor用于改变选中区域的颜色 10. 选中区域时,工具栏显示按钮btnDeleteRegion和btnSelectColor;隐藏btnDrawRegion
11. 当选中区域时btnDeleteRegion用于删除该区域删除后btnSelectColor隐藏btnDrawRegion显示 11. 当选中区域时btnSelectColor用于改变选中区域的颜色
12. 当选中区域时,鼠标移动到八个句柄上,显示对应的光标,用于调整区域大小 12. 当选中区域时,btnDeleteRegion用于删除该区域删除后btnSelectColor隐藏btnDrawRegion显示
13. 当选中区域时,鼠标可以移动区域,用于调整区域位置 13. 当选中区域时,鼠标移动到八个句柄上,显示对应的光标,用于调整区域大小
14. 当选中区域时,右击鼠标,退出选中状态,转为就绪状态 14. 当选中区域时,鼠标可以移动区域,用于调整区域位置。
15. 当就绪状态工具栏显示绘制温差图按钮btnDrawTempDiff 15.选中区域时,右击鼠标,退出选中状态,转为就绪状态
16.绘制温差图按钮按下时,进入绘制温差图状态,显示添加和删除温差图按钮btnAddTempDiff、btnDeleteTempDiff显示温差图例列表dataGridViewTempDiff 16.就绪状态时,工具栏显示绘制温差图按钮btnDrawTempDiff
17. 当绘制温差图状态时,右击鼠标进入就绪状态 17. 当绘制温差图按钮按下时进入绘制温差图状态显示添加和删除温差图例按钮btnAddTempDiff、btnDeleteTempDiff显示温差图例列表dataGridViewTempDiff
18. 初始状态/就绪状态显示dataGridViewTempDiff但只允许查看 18. 当绘制温差图状态时,右击鼠标进入就绪状态
19. 初始状态/就绪状态显示dataGridViewTempDiff但只允许查看
### btnNewTempRegion新建测温区 ### btnNewTempRegion新建测温区
1. 移除所有已有的测温区列表 1. 移除所有已有的测温区列表

View File

@@ -705,14 +705,21 @@ namespace JoyD.Windows.CS
try try
{ {
// 获取工具栏分隔条引用 // 获取工具栏分隔条引用
ToolStripSeparator toolStripSeparator = null; ToolStripSeparator firstSeparator = null; // 删除温差图例按钮和画笔大小按钮之间的分隔条
// 查找温差图例按钮和画笔大小按钮之间的分隔条 ToolStripSeparator secondSeparator = null; // 画笔大小按钮和新按钮组之间的分隔条
// 查找分隔条
for (int i = 0; i < toolStrip.Items.Count - 1; i++) for (int i = 0; i < toolStrip.Items.Count - 1; i++)
{ {
// 查找第一个分隔条(在删除温差图例按钮和画笔大小按钮之间)
if (toolStrip.Items[i] == btnDeleteTempDiff && toolStrip.Items[i + 1] is ToolStripSeparator) if (toolStrip.Items[i] == btnDeleteTempDiff && toolStrip.Items[i + 1] is ToolStripSeparator)
{ {
toolStripSeparator = toolStrip.Items[i + 1] as ToolStripSeparator; firstSeparator = toolStrip.Items[i + 1] as ToolStripSeparator;
break; }
// 查找第二个分隔条(在画笔大小按钮和新按钮组之间)
else if (toolStrip.Items[i] == btnBrushSize25 && toolStrip.Items[i + 1] is ToolStripSeparator)
{
secondSeparator = toolStrip.Items[i + 1] as ToolStripSeparator;
} }
} }
@@ -757,10 +764,16 @@ namespace JoyD.Windows.CS
UpdateBrushSizeButtonSelection(_currentBrushSize); UpdateBrushSizeButtonSelection(_currentBrushSize);
// 控制分隔条可见性:当前后都有按钮显示时显示分隔条 // 控制分隔条可见性:当前后都有按钮显示时显示分隔条
// 前有btnDeleteTempDiff显示后有btnBrushSize1显示 // 第一个分隔条:前有btnDeleteTempDiff显示后有btnBrushSize1显示
if (toolStripSeparator != null) if (firstSeparator != null)
{ {
toolStripSeparator.Visible = btnDeleteTempDiff.Visible && btnBrushSize1.Visible; firstSeparator.Visible = btnDeleteTempDiff.Visible && btnBrushSize1.Visible;
}
// 第二个分隔条前有btnBrushSize25显示检查后面是否有可见按钮
// 在温差图绘制模式下,后面的按钮组(新按钮组)通常不可见,所以分隔条也隐藏
if (secondSeparator != null)
{
secondSeparator.Visible = false; // 在温差图绘制模式下,后面的按钮组通常不可见
} }
} }
else else
@@ -774,9 +787,13 @@ namespace JoyD.Windows.CS
btnBrushSize25.Visible = false; btnBrushSize25.Visible = false;
// 隐藏分隔条 // 隐藏分隔条
if (toolStripSeparator != null) if (firstSeparator != null)
{ {
toolStripSeparator.Visible = false; firstSeparator.Visible = false;
}
if (secondSeparator != null)
{
secondSeparator.Visible = false;
} }
} }
} }
@@ -947,14 +964,21 @@ namespace JoyD.Windows.CS
try try
{ {
// 获取工具栏分隔条引用 // 获取工具栏分隔条引用
ToolStripSeparator toolStripSeparator = null; ToolStripSeparator firstSeparator = null; // 删除温差图例按钮和画笔大小按钮之间的分隔条
// 查找温差图例按钮和画笔大小按钮之间的分隔条 ToolStripSeparator secondSeparator = null; // 画笔大小按钮和新按钮组之间的分隔条
// 查找分隔条
for (int i = 0; i < toolStrip.Items.Count - 1; i++) for (int i = 0; i < toolStrip.Items.Count - 1; i++)
{ {
// 查找第一个分隔条(在删除温差图例按钮和画笔大小按钮之间)
if (toolStrip.Items[i] == btnDeleteTempDiff && toolStrip.Items[i + 1] is ToolStripSeparator) if (toolStrip.Items[i] == btnDeleteTempDiff && toolStrip.Items[i + 1] is ToolStripSeparator)
{ {
toolStripSeparator = toolStrip.Items[i + 1] as ToolStripSeparator; firstSeparator = toolStrip.Items[i + 1] as ToolStripSeparator;
break; }
// 查找第二个分隔条(在画笔大小按钮和新按钮组之间)
else if (toolStrip.Items[i] == btnBrushSize25 && toolStrip.Items[i + 1] is ToolStripSeparator)
{
secondSeparator = toolStrip.Items[i + 1] as ToolStripSeparator;
} }
} }
@@ -985,9 +1009,13 @@ namespace JoyD.Windows.CS
btnBrushSize15.Visible = false; btnBrushSize15.Visible = false;
btnBrushSize25.Visible = false; btnBrushSize25.Visible = false;
// 控制分隔条可见性:前后都没有显示的按钮,隐藏分隔条 // 控制分隔条可见性:前后都没有显示的按钮,隐藏分隔条
if (toolStripSeparator != null) if (firstSeparator != null)
{ {
toolStripSeparator.Visible = false; firstSeparator.Visible = false; // 前面按钮(btnDeleteTempDiff)和后面按钮(所有画笔按钮)都不可见
}
if (secondSeparator != null)
{
secondSeparator.Visible = false; // 前面按钮(所有画笔按钮)不可见,后面按钮可见但不需要分隔条
} }
break; break;
@@ -1016,9 +1044,13 @@ namespace JoyD.Windows.CS
btnBrushSize15.Visible = false; btnBrushSize15.Visible = false;
btnBrushSize25.Visible = false; btnBrushSize25.Visible = false;
// 控制分隔条可见性:前后都没有显示的按钮,隐藏分隔条 // 控制分隔条可见性:前后都没有显示的按钮,隐藏分隔条
if (toolStripSeparator != null) if (firstSeparator != null)
{ {
toolStripSeparator.Visible = false; firstSeparator.Visible = false; // 前面按钮(btnDeleteTempDiff)和后面按钮(所有画笔按钮)都不可见
}
if (secondSeparator != null)
{
secondSeparator.Visible = false; // 前面按钮(所有画笔按钮)和后面按钮(新按钮组)都不可见
} }
break; break;
case 1: // 选中区域状态 case 1: // 选中区域状态
@@ -1045,9 +1077,13 @@ namespace JoyD.Windows.CS
btnBrushSize15.Visible = false; btnBrushSize15.Visible = false;
btnBrushSize25.Visible = false; btnBrushSize25.Visible = false;
// 控制分隔条可见性:前后都没有显示的按钮,隐藏分隔条 // 控制分隔条可见性:前后都没有显示的按钮,隐藏分隔条
if (toolStripSeparator != null) if (firstSeparator != null)
{ {
toolStripSeparator.Visible = false; firstSeparator.Visible = false; // 前面按钮(btnDeleteTempDiff)和后面按钮(所有画笔按钮)都不可见
}
if (secondSeparator != null)
{
secondSeparator.Visible = false; // 前面按钮(所有画笔按钮)和后面按钮(新按钮组)都不可见
} }
break; break;
@@ -1075,11 +1111,16 @@ namespace JoyD.Windows.CS
btnBrushSize10.Visible = false; btnBrushSize10.Visible = false;
btnBrushSize15.Visible = false; btnBrushSize15.Visible = false;
btnBrushSize25.Visible = false; btnBrushSize25.Visible = false;
// 控制分隔条可见性:只有前有按钮显示且后有按钮显示时才显示分隔条 // 控制分隔条可见性
// 在温差图绘制初始状态,画笔按钮默认隐藏,所以分隔条也隐藏 // 第一个分隔条:前面按钮(btnDeleteTempDiff)可见,后面按钮(所有画笔按钮)初始不可见
if (toolStripSeparator != null) if (firstSeparator != null)
{ {
toolStripSeparator.Visible = false; firstSeparator.Visible = false; // 初始状态下画笔按钮不可见,所以分隔条也隐藏
}
// 第二个分隔条:前面按钮(所有画笔按钮)初始不可见,后面按钮(新按钮组)不可见
if (secondSeparator != null)
{
secondSeparator.Visible = false;
} }
break; break;
} }