Files
FullAutoWaterCheck/全自动水压检测仪/实现说明.md
GukSang.Jin 343370cacc 更新曲线
2026-02-04 12:00:13 +08:00

3.9 KiB
Raw Blame History

状态监控设置弹窗实现说明

需求概述

将NormalTemperatureMode页面顶部状态栏中的常温/高温模式指示和阀门状态展示区域,移动到一个新的设置弹窗中展示。

实现方案

1. 新建状态设置弹窗 (StatusSettingsForm)

文件结构

  • StatusSettingsForm.cs - 窗体逻辑代码
  • StatusSettingsForm.Designer.cs - 窗体UI设计代码

主要功能

  1. 温度模式显示区域

    • 常温模式指示灯 (uiLight1_Status) - 蓝色
    • 高温模式指示灯 (uiLight2_Status) - 红色
    • 当前模式文本 (uiLabel11_Status)
  2. 阀门状态显示区域 (10个阀门指示灯)

    • uiLight3_Status: 高压出阀
    • uiLight4_Status: 高压进阀
    • uiLight5_Status: 常温抽水阀
    • uiLight6_Status: 常温水箱加水阀
    • uiLight7_Status: 高温抽水阀
    • uiLight8_Status: 空气抽气阀
    • uiLight9_Status: 加热状态
    • uiLight10_Status: 常温回水阀
    • uiLight11_Status: 高温水箱加水阀
    • uiLight12_Status: 高温回水阀
  3. 实时更新机制

    • 使用Timer每500ms从父窗体获取最新状态
    • 通过父窗体的UpdateStatusSettingsForm方法获取控件状态
    • 支持线程安全的UI更新

2. 修改NormalTemperatureMode主窗体

新增内容

  1. 私有字段

    private StatusSettingsForm _statusSettingsForm;
    
  2. 公共更新方法

    public void UpdateStatusSettingsForm(StatusSettingsForm form)
    
    • 从主窗体读取所有指示灯和标签的状态
    • 调用StatusSettingsForm的更新方法传递状态
  3. 打开窗体方法

    private void OpenStatusSettingsForm()
    
    • 创建或激活StatusSettingsForm实例
    • 实现单例模式,避免重复创建
  4. 按钮事件修改

    • 修改uiButton14的MouseUp事件
    • 短按:打开状态设置窗体
    • 长按1秒以上打开系数设置窗体

3. 项目文件更新

全自动水压检测仪.csproj中添加新文件引用:

<Compile Include="StatusSettingsForm.cs">
  <SubType>Form</SubType>
</Compile>
<Compile Include="StatusSettingsForm.Designer.cs">
  <DependentUpon>StatusSettingsForm.cs</DependentUpon>
</Compile>

使用说明

打开状态设置窗体

  1. 在NormalTemperatureMode主界面
  2. 短按隐藏按钮uiButton14
  3. 弹出状态设置窗体

窗体特性

  • 窗体大小850 x 550 像素
  • 居中显示在父窗体上方
  • 不显示在任务栏
  • 实时更新状态每500ms
  • 点击"关闭"按钮关闭窗体

技术要点

1. 状态同步

  • 使用Timer定时器实现自动更新
  • 通过父窗体公共方法获取状态
  • 线程安全的UI更新使用Invoke

2. 控件状态映射

// 温度模式
uiLight1 (主窗体)  uiLight1_Status (设置窗体)
uiLight2 (主窗体)  uiLight2_Status (设置窗体)
uiLabel11 (主窗体)  uiLabel11_Status (设置窗体)

// 阀门状态
uiLight3-12 (主窗体)  uiLight3-12_Status (设置窗体)

3. 布局设计

  • 温度模式区域顶部高度120px
  • 阀门状态区域中部高度280px5列2行布局
  • 关闭按钮:底部居中

注意事项

  1. 生产环境可用性

    • 所有代码经过空值检查
    • 异常处理完善
    • 线程安全保证
  2. 性能优化

    • 定时器间隔500ms平衡实时性和性能
    • 窗体关闭时自动停止定时器
    • 使用单例模式避免重复创建
  3. 正确取值

    • 直接从主窗体控件读取State属性
    • 保证状态的准确性和实时性
  4. 正确显示状态

    • 指示灯颜色:绿色(开启)、灰色(关闭)
    • 温度模式:蓝色(常温)、红色(高温)
    • 文本标签清晰标注每个状态的含义

测试建议

  1. 测试窗体打开和关闭
  2. 验证状态实时更新
  3. 检查所有指示灯显示正确
  4. 测试长按和短按按钮功能
  5. 验证多次打开窗体的稳定性