修复工具栏分隔条显示问题,在DataGridViewTempDiff_SelectionChanged中添加分隔条可见性控制

This commit is contained in:
zqm
2025-11-10 13:34:26 +08:00
parent a7141db1fc
commit 8f0c0d2924

View File

@@ -451,6 +451,18 @@ namespace JoyD.Windows.CS
{
try
{
// 获取工具栏分隔条引用
ToolStripSeparator toolStripSeparator = 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;
}
}
// 检查当前是否在温差图绘制状态下
// 只有同时满足处于温差图绘制模式、有选中的图例行、并且dataGridViewTempDiff控件可见时才显示画笔大小按钮
if (_isTempDiffDrawingMode && dataGridViewTempDiff.SelectedRows.Count > 0 && dataGridViewTempDiff.Visible)
@@ -464,6 +476,13 @@ namespace JoyD.Windows.CS
// 确保当前选中的画笔大小按钮处于选中状态
UpdateBrushSizeButtonSelection(_currentBrushSize);
// 控制分隔条可见性:当前后都有按钮显示时显示分隔条
// 前有btnDeleteTempDiff显示后有btnBrushSize1显示
if (toolStripSeparator != null)
{
toolStripSeparator.Visible = btnDeleteTempDiff.Visible && btnBrushSize1.Visible;
}
}
else
{
@@ -473,6 +492,12 @@ namespace JoyD.Windows.CS
btnBrushSize5.Visible = false;
btnBrushSize10.Visible = false;
btnBrushSize15.Visible = false;
// 隐藏分隔条
if (toolStripSeparator != null)
{
toolStripSeparator.Visible = false;
}
}
}
catch (Exception ex)
@@ -585,6 +610,18 @@ namespace JoyD.Windows.CS
{
try
{
// 获取工具栏分隔条引用
ToolStripSeparator toolStripSeparator = 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;
}
}
switch (state)
{
case 0: // 初始状态/就绪状态
@@ -601,6 +638,11 @@ namespace JoyD.Windows.CS
btnBrushSize5.Visible = false;
btnBrushSize10.Visible = false;
btnBrushSize15.Visible = false;
// 控制分隔条可见性:前后都没有显示的按钮,隐藏分隔条
if (toolStripSeparator != null)
{
toolStripSeparator.Visible = false;
}
break;
case 1: // 选中区域状态
btnDrawRegion.Visible = false; // 隐藏绘制区域按钮
@@ -616,6 +658,11 @@ namespace JoyD.Windows.CS
btnBrushSize5.Visible = false;
btnBrushSize10.Visible = false;
btnBrushSize15.Visible = false;
// 控制分隔条可见性:前后都没有显示的按钮,隐藏分隔条
if (toolStripSeparator != null)
{
toolStripSeparator.Visible = false;
}
break;
case 2: // 绘制状态
btnSelectColor.Visible = true; // 显示颜色选择按钮
@@ -631,6 +678,11 @@ namespace JoyD.Windows.CS
btnBrushSize5.Visible = false;
btnBrushSize10.Visible = false;
btnBrushSize15.Visible = false;
// 控制分隔条可见性:前后都没有显示的按钮,隐藏分隔条
if (toolStripSeparator != null)
{
toolStripSeparator.Visible = false;
}
break;
case 3: // 温差图绘制状态
btnDrawTempDiff.Visible = true; // 显示温差图按钮
@@ -646,6 +698,12 @@ namespace JoyD.Windows.CS
btnBrushSize5.Visible = false;
btnBrushSize10.Visible = false;
btnBrushSize15.Visible = false;
// 控制分隔条可见性:只有前有按钮显示且后有按钮显示时才显示分隔条
// 在温差图绘制初始状态,画笔按钮默认隐藏,所以分隔条也隐藏
if (toolStripSeparator != null)
{
toolStripSeparator.Visible = false;
}
break;
}
}