diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/README.md b/Windows/CS/Framework4.0/Toprie/Toprie/README.md index 7ee8ed0..5bf703a 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/README.md +++ b/Windows/CS/Framework4.0/Toprie/Toprie/README.md @@ -150,18 +150,19 @@ 4. 保存的矩形框位置和大小信息应该是相对于图像的,而不是相对于控件的。 5. 当btnDrawRegion按下后,处于绘制状态, btnSelectColor才显示出来 6. 当绘制状态时,右击鼠标,退出绘制状态,且清除所有临时绘制。 -7. 当就绪状态时,鼠标移到区域内,该区域内填充半透明色,当有多个重叠时,填充索引号最大的区域 -8. 当鼠标在半透明区域内单击时,该区域填充半透明色,且显示八个句柄,表示选中该区域。 -9. 选中区域时,工具栏显示按钮btnDeleteRegion和btnSelectColor;隐藏btnDrawRegion。 -10. 当选中区域时,btnSelectColor用于改变选中区域的颜色。 -11. 当选中区域时,btnDeleteRegion用于删除该区域,删除后btnSelectColor隐藏,btnDrawRegion显示。 -12. 当选中区域时,鼠标移动到八个句柄上,显示对应的光标,用于调整区域大小。 -13. 当选中区域时,鼠标可以移动区域,用于调整区域位置。 -14. 当选中区域时,右击鼠标,退出选中状态,转为就绪状态 -15. 当就绪状态时,工具栏显示绘制温差图按钮(btnDrawTempDiff) -16. 当绘制温差图按钮按下时,进入绘制温差图状态,显示添加和删除温差图例按钮(btnAddTempDiff、btnDeleteTempDiff),显示温差图例列表(dataGridViewTempDiff) -17. 当绘制温差图状态时,右击鼠标进入就绪状态 -18. 初始状态/就绪状态,显示dataGridViewTempDiff,但只允许查看 +7. 当绘制状态时,双击鼠标,随机生成一个颜色,用于绘制矩形框。 +8. 当就绪状态时,鼠标移到区域内,该区域内填充半透明色,当有多个重叠时,填充索引号最大的区域 +9. 当鼠标在半透明区域内单击时,该区域填充半透明色,且显示八个句柄,表示选中该区域。 +10. 选中区域时,工具栏显示按钮btnDeleteRegion和btnSelectColor;隐藏btnDrawRegion。 +11. 当选中区域时,btnSelectColor用于改变选中区域的颜色。 +12. 当选中区域时,btnDeleteRegion用于删除该区域,删除后btnSelectColor隐藏,btnDrawRegion显示。 +13. 当选中区域时,鼠标移动到八个句柄上,显示对应的光标,用于调整区域大小。 +14. 当选中区域时,鼠标可以移动区域,用于调整区域位置。 +15. 当选中区域时,右击鼠标,退出选中状态,转为就绪状态 +16. 当就绪状态时,工具栏显示绘制温差图按钮(btnDrawTempDiff) +17. 当绘制温差图按钮按下时,进入绘制温差图状态,显示添加和删除温差图例按钮(btnAddTempDiff、btnDeleteTempDiff),显示温差图例列表(dataGridViewTempDiff) +18. 当绘制温差图状态时,右击鼠标进入就绪状态 +19. 初始状态/就绪状态,显示dataGridViewTempDiff,但只允许查看 ### btnNewTempRegion(新建测温区) 1. 移除所有已有的测温区列表 diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs index 74236af..40920a2 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs @@ -705,14 +705,21 @@ namespace JoyD.Windows.CS try { // 获取工具栏分隔条引用 - ToolStripSeparator toolStripSeparator = null; - // 查找温差图例按钮和画笔大小按钮之间的分隔条 + ToolStripSeparator firstSeparator = null; // 删除温差图例按钮和画笔大小按钮之间的分隔条 + ToolStripSeparator secondSeparator = null; // 画笔大小按钮和新按钮组之间的分隔条 + + // 查找分隔条 for (int i = 0; i < toolStrip.Items.Count - 1; i++) { + // 查找第一个分隔条(在删除温差图例按钮和画笔大小按钮之间) if (toolStrip.Items[i] == btnDeleteTempDiff && toolStrip.Items[i + 1] is ToolStripSeparator) { - toolStripSeparator = toolStrip.Items[i + 1] as ToolStripSeparator; - break; + firstSeparator = toolStrip.Items[i + 1] as ToolStripSeparator; + } + // 查找第二个分隔条(在画笔大小按钮和新按钮组之间) + 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); // 控制分隔条可见性:当前后都有按钮显示时显示分隔条 - // 前有btnDeleteTempDiff显示,后有btnBrushSize1显示 - if (toolStripSeparator != null) + // 第一个分隔条:前有btnDeleteTempDiff显示,后有btnBrushSize1显示 + if (firstSeparator != null) { - toolStripSeparator.Visible = btnDeleteTempDiff.Visible && btnBrushSize1.Visible; + firstSeparator.Visible = btnDeleteTempDiff.Visible && btnBrushSize1.Visible; + } + // 第二个分隔条:前有btnBrushSize25显示,检查后面是否有可见按钮 + // 在温差图绘制模式下,后面的按钮组(新按钮组)通常不可见,所以分隔条也隐藏 + if (secondSeparator != null) + { + secondSeparator.Visible = false; // 在温差图绘制模式下,后面的按钮组通常不可见 } } else @@ -774,9 +787,13 @@ namespace JoyD.Windows.CS 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 { // 获取工具栏分隔条引用 - ToolStripSeparator toolStripSeparator = null; - // 查找温差图例按钮和画笔大小按钮之间的分隔条 + ToolStripSeparator firstSeparator = null; // 删除温差图例按钮和画笔大小按钮之间的分隔条 + ToolStripSeparator secondSeparator = null; // 画笔大小按钮和新按钮组之间的分隔条 + + // 查找分隔条 for (int i = 0; i < toolStrip.Items.Count - 1; i++) { + // 查找第一个分隔条(在删除温差图例按钮和画笔大小按钮之间) if (toolStrip.Items[i] == btnDeleteTempDiff && toolStrip.Items[i + 1] is ToolStripSeparator) { - toolStripSeparator = toolStrip.Items[i + 1] as ToolStripSeparator; - break; + firstSeparator = toolStrip.Items[i + 1] as ToolStripSeparator; + } + // 查找第二个分隔条(在画笔大小按钮和新按钮组之间) + 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; btnBrushSize25.Visible = false; // 控制分隔条可见性:前后都没有显示的按钮,隐藏分隔条 - if (toolStripSeparator != null) + if (firstSeparator != null) { - toolStripSeparator.Visible = false; + firstSeparator.Visible = false; // 前面按钮(btnDeleteTempDiff)和后面按钮(所有画笔按钮)都不可见 + } + if (secondSeparator != null) + { + secondSeparator.Visible = false; // 前面按钮(所有画笔按钮)不可见,后面按钮可见但不需要分隔条 } break; @@ -1016,9 +1044,13 @@ namespace JoyD.Windows.CS btnBrushSize15.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; case 1: // 选中区域状态 @@ -1045,9 +1077,13 @@ namespace JoyD.Windows.CS btnBrushSize15.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; @@ -1075,11 +1111,16 @@ namespace JoyD.Windows.CS btnBrushSize10.Visible = false; btnBrushSize15.Visible = false; btnBrushSize25.Visible = false; - // 控制分隔条可见性:只有前有按钮显示且后有按钮显示时才显示分隔条 - // 在温差图绘制初始状态,画笔按钮默认隐藏,所以分隔条也隐藏 - if (toolStripSeparator != null) + // 控制分隔条可见性 + // 第一个分隔条:前面按钮(btnDeleteTempDiff)可见,后面按钮(所有画笔按钮)初始不可见 + if (firstSeparator != null) { - toolStripSeparator.Visible = false; + firstSeparator.Visible = false; // 初始状态下画笔按钮不可见,所以分隔条也隐藏 + } + // 第二个分隔条:前面按钮(所有画笔按钮)初始不可见,后面按钮(新按钮组)不可见 + if (secondSeparator != null) + { + secondSeparator.Visible = false; } break; }