feat: 更新条件编辑器和状态表单,添加单元格格式化功能并调整导航项名称

This commit is contained in:
waynebian01
2026-08-25 16:48:43 +08:00
parent 58994ba90b
commit 7347258968
2 changed files with 43 additions and 3 deletions

View File

@@ -609,6 +609,7 @@ public sealed class ConditionEditorForm : Form
};
_conditionsGrid.CellValueChanged += OnGridCellValueChanged;
_conditionsGrid.CellEndEdit += (_, _) => UpdatePreview();
_conditionsGrid.CellFormatting += OnConditionsGridCellFormatting;
_conditionsGrid.CellClick += OnConditionsGridCellClick;
_conditionsGrid.CellPainting += OnConditionsGridCellPainting;
_conditionsGrid.KeyDown += OnConditionsGridKeyDown;
@@ -625,6 +626,45 @@ public sealed class ConditionEditorForm : Form
UiTheme.CacheDataGridViewColumnWidths(_conditionsGrid, "condition-editor");
}
private void OnConditionsGridCellFormatting(object? sender, DataGridViewCellFormattingEventArgs e)
{
if (e.RowIndex < 0)
{
return;
}
var cell = _conditionsGrid.Rows[e.RowIndex].Cells[e.ColumnIndex];
if (e.ColumnIndex == _conditionsGrid.Columns[FieldColumn]!.Index)
{
cell.ToolTipText = cell.Value?.ToString() switch
{
"一键辅助" => "一键辅助, 数值参考技能列表",
"插入法术" => "插入法术, 数值参考技能列表",
_ => e.Value?.ToString() ?? string.Empty
};
return;
}
if (e.ColumnIndex == _conditionsGrid.Columns[ValueColumn]!.Index
&& IsCastOrChannelTimeField(SelectedField(_conditionsGrid.Rows[e.RowIndex]))
&& decimal.TryParse(
e.Value?.ToString(),
NumberStyles.Number,
CultureInfo.InvariantCulture,
out var value))
{
cell.ToolTipText = $"约{(value / 10m).ToString("0.#", CultureInfo.InvariantCulture)}秒";
}
}
private static bool IsCastOrChannelTimeField(FieldItem? field)
{
var name = field?.Name;
return name?.EndsWith("施法(正计时)", StringComparison.Ordinal) == true
|| name?.EndsWith("施法(倒计时)", StringComparison.Ordinal) == true
|| name?.EndsWith("引导", StringComparison.Ordinal) == true;
}
private static DataGridViewComboBoxColumn CreateComboColumn(
string name,
string headerText,

View File

@@ -282,7 +282,7 @@ public sealed class StatusForm : Form
Size = new Size(1280, 800);
BackColor = UiTheme.Background;
ForeColor = UiTheme.Text;
ShowInTaskbar = false;
ShowInTaskbar = true;
TopMost = false;
Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
AutoScaleMode = AutoScaleMode.Dpi;
@@ -364,8 +364,8 @@ public sealed class StatusForm : Form
AddNavItem(nav, SettingsPage.Logic, SettingsNavIcon.Logic, "逻辑", CreatePageShell("逻辑", "运行时推荐目标与调试值", BuildSection("逻辑信息", _unitInfoList, "当前模块的决策输出")));
AddNavItem(nav, SettingsPage.Logs, SettingsNavIcon.Logs, "日志", CreatePageShell("日志", "运行、模块匹配与施放记录", BuildLogPage()));
AddNavGroup(nav, "说明");
AddNavItem(nav, SettingsPage.BossNumbers, SettingsNavIcon.BossNumbers, "首领编号", CreatePageShell("首领编号", "副本首领的序号、名称与扫描编号", BuildBossNumbersPage()));
AddNavItem(nav, SettingsPage.CommonFields, SettingsNavIcon.CommonFields, "常用字段", CreatePageShell("常用字段", "模块条件可用的状态字段参考", BuildCommonFieldsPanel()));
AddNavItem(nav, SettingsPage.BossNumbers, SettingsNavIcon.BossNumbers, "首领", CreatePageShell("首领编号", "副本首领的序号、名称与扫描编号", BuildBossNumbersPage()));
AddNavItem(nav, SettingsPage.CommonFields, SettingsNavIcon.CommonFields, "字段", CreatePageShell("常用字段", "模块条件可用的状态字段参考", BuildCommonFieldsPanel()));
AddNavGroup(nav, "系统");
AddNavItem(nav, SettingsPage.About, SettingsNavIcon.About, "关于", CreatePageShell("关于", "应用信息", _aboutHost));
_aboutHost.Controls.Add(BuildAboutPanel());