跳转至

UI 控件与窗体

第八章:UI 控件与窗体

LoongCAD 在 LoongCAD.STC.Friendly.dll 中内置了大量 WinForms 控件,大致分为两类:

  • 基础控件:直接拖到窗体上使用,如 SaveLoadOkApplyModifyGetOnOffCancelTabControl 等,行为和标准 WinForms 控件一致
  • 属性面板(...Panel:用于自动绑定到参数数据类,通过声明 public XxxPanel.Data xxx 字段来驱动 UI 渲染。部分面板内嵌了 Data 嵌套类用于参数映射,并非所有控件都有此机制

8.1 螺栓基本属性 —— BoltBasicPropertyPanel

字段 类型 默认值示例 说明
BoltStandard string "HS10.9" 螺栓标准等级
BoltSize double 24.0 螺栓公称直径 (mm)
HoleTol double 2.0 孔径公差 = 栓径 + 此值
HoleX double X 方向长圆孔长度(0 = 圆孔)
HoleY double Y 方向长圆孔长度(0 = 圆孔)
HoleType int 孔类型:0=圆孔, 1=长圆孔
RotSlot int 长圆孔旋转角度
SlotIn int 长圆孔方向
ExtLength double 螺栓末端伸出螺母的长度 (mm)

8.2 螺栓组成 —— BoltContentPanel

字段 类型 说明
WasherUp bool 螺栓头上方是否加垫片
WasherDown0 bool 第一层板下方垫片
WasherDown1 bool 第二层板下方垫片
Nut0 bool 第一层板下方螺母
Nut1 bool 第二层板下方螺母

8.3 板件属性 —— PlatePropertyPanel

字段 类型 默认值示例 说明
Thickness double 10 板厚 (mm)
Width double 板宽度
Height double 板高度
Material string "Q235B" 材质牌号
Name string "板" 板件名称
NoPrefix string "B" 零件编号前缀
NoStartFixed string 零件起始编号/后缀
AssemblyNoPrefix string 构件编号前缀
AssemblyNoStartFixed string 构件起始编号
Finish string 表面处理/抛光
Class string 等级

8.4 梁属性 —— BeamPropertyPanel

字段 类型 说明
Profile string 截面型材字符串
Material string 材质牌号
Name string 构件名称
NoPrefix string 零件编号前缀
NoStartFixed string 零件起始编号/后缀
AssemblyNoPrefix string 构件编号前缀
AssemblyNoStartFixed string 构件起始编号
Finish string 表面处理
Class string 等级

此外 BeamPropertyPanel 提供多个 Enable*Controls 属性(EnableProfileControlsEnableMaterialControlsEnableNumberControls 等)可按需显示/隐藏面板中的各部分。


8.5 基础控件详解

SaveLoad(ParamStoreBarFriendly

数据存取栏,提供"保存配置 / 加载配置"功能。由 LoongCAD 框架自动接管,无需手写事件。

属性 类型 说明
LoadName string 当前选中的已保存配置名称
CreateName string 新建配置时的名称输入

OkApplyModifyGetOnOffCancel

确定 / 应用 / 修改 / 获取 / 开关 / 取消 按钮组合。包含 ButtonEnum 枚举标识各按钮类型。由框架自动接管按钮事件。

OkApplyCancel

简化版按钮栏(确定 / 应用 / 取消),同样含 ButtonEnum,适用于不需要"修改/获取/开关"功能的简单组件。


8.6 目录与下拉控件

以下控件可直接拖到窗体上使用,也可在 Data 类中作为字段声明:

控件 类型 说明
ProfileCatalog 下拉 型材目录浏览器
MaterialCatalog 下拉 材质目录浏览器
BoltCatalogStandard 下拉 螺栓标准目录
BoltCatalogSize 下拉 螺栓尺寸目录
BoltCatalogLength 下拉 螺栓长度目录
ChamferCombo 下拉 倒角类型选择,含 DefaultChamferType / ChamferPosition 属性
ImageListComboBox 下拉 带图片列表的下拉框
ImageSpriteComboBox 下拉 带图片精灵的下拉框

ChamferCombo 示例:

public ChamferCombo chamfer = new ChamferCombo();
// chamfer.DefaultChamferType  — 默认倒角类型
// chamfer.ChamferPosition     — 倒角位置

8.7 参数数据类中的声明方式

将所有需要的面板以 public 字段声明在 [AttributeFields] 类中,并在构造函数中设置默认值。LoongCAD 会自动将每个字段渲染为对应的 UI 面板。

[AttributeFields]
public class MyData
{
    // ── 螺栓四个面板 ──
    public BoltBasicPropertyPanel.Data  boltBasic   = new BoltBasicPropertyPanel.Data();
    public BoltHolePanel.Data           boltHole    = new BoltHolePanel.Data();
    public BoltContentPanel.Data        boltContent = new BoltContentPanel.Data();
    public BoltExtendPanel.Data         boltExtend  = new BoltExtendPanel.Data();

    // ── 板件面板 ──
    public PlatePropertyPanel.Data      plate       = new PlatePropertyPanel.Data();

    // ── 自定义参数(自动生成文本框/下拉框) ──
    public double beamGap     = 10.0;
    public string material    = "Q355B";
    public int    boltRows    = 2;

    public MyData()
    {
        boltBasic.BoltStandard = "HS10.9";
        boltBasic.BoltSize     = 24.0;
        boltBasic.HoleTol      = 2.0;

        boltContent.WasherUp    = true;
        boltContent.WasherDown0 = true;
        boltContent.Nut0        = true;

        plate.Thickness = 10;
        plate.Material  = "Q235B";
        plate.Name      = "连接板";
        plate.NoPrefix  = "B";
    }
}

⚠️ 参数数据类必须标注 [AttributeFields],且所有 public 字段会自动映射到 UI。private / protected 字段不会被渲染。


📝 未覆盖的控件: ConnectionCommonPropertyPanel(节点通用属性)、DetailCommonPropertyPanel(细部通用属性)——这两个由框架在特定组件类型中自动注入,通常不需要手动声明。如需定制,可在 VS 对象浏览器中查看其公开属性。