solidworks propertymanager controls 控件

6ZWWF{~7H96_(UJP%4H}}KG.png
 'Groups
    Dim group1 As PropertyManagerPageGroup
    Dim group2 As PropertyManagerPageGroup

    'Controls
    Dim checkbox1 As PropertyManagerPageCheckbox
    Dim option1 As PropertyManagerPageOption
    Dim option2 As PropertyManagerPageOption
    Dim option3 As PropertyManagerPageOption
    Dim list1 As PropertyManagerPageListbox

    Dim selection1 As PropertyManagerPageSelectionbox
    Dim num1 As PropertyManagerPageNumberbox
    Dim combo1 As PropertyManagerPageCombobox

    'Control IDs
    Dim group1ID As Integer = 0
    Dim group2ID As Integer = 1
    Dim checkbox1ID As Integer = 2
    Dim option1ID As Integer = 3
    Dim option2ID As Integer = 4
    Dim option3ID As Integer = 5
    Dim list1ID As Integer = 6
    Dim selection1ID As Integer = 7
    Dim num1ID As Integer = 8
    Dim combo1ID As Integer = 9
Dim options As Integer
Dim leftAlign As Integer
Dim controlType As Integer

添加组

'添加组一
options = swAddGroupBoxOptions_e.swGroupBoxOptions_Expanded + swAddGroupBoxOptions_e.swGroupBoxOptions_Visible
        group1 = ppage.AddGroupBox(group1ID, "Sample Group I", options)
'添加组二
        options = swAddGroupBoxOptions_e.swGroupBoxOptions_Checkbox + swAddGroupBoxOptions_e.swGroupBoxOptions_Visible
        group2 = ppage.AddGroupBox(group2ID, "Sample Group II", options)

这里主要用到方法 AddGroupBox()
其中有三个参数,IPropertyManagerPageTab.AddGroupBox(ID, Caption, Options)
ID 为组传一个id 整数型
Caption 组的名字
Options
Options as defined in swAddGroupBoxOptions_e
swGroupBoxOptions_Checkbox 1 or 0x1 可选框
swGroupBoxOptions_Checked 2 or 0x2 默认选中
swGroupBoxOptions_Expanded 8 or 0x8 默认展开
swGroupBoxOptions_Visible 4 or 0x4 可见?

一和二. checkbox选择框和选项

'Add Controls to Group1 
        'Checkbox1
        controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
        leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
        options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
        checkbox1 = group1.AddControl(checkbox1ID, controlType, "Sample Checkbox", leftAlign, options, "True or False Checkbox")

        'Option1
        controlType = swPropertyManagerPageControlType_e.swControlType_Option
        leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
        options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
        option1 = group1.AddControl(option1ID, controlType, "Sample Option1", leftAlign, options, "Radio Buttons")

        'Option2
        controlType = swPropertyManagerPageControlType_e.swControlType_Option
        leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
        options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
        option2 = group1.AddControl(option2ID, controlType, "Sample Option2", leftAlign, options, "Radio Buttons")
        If Not option2 Is Nothing Then
            option2.Checked = True
        End If

        'Option3
        controlType = swPropertyManagerPageControlType_e.swControlType_Option
        leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
        options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
        option3 = group1.AddControl(option3ID, controlType, "Sample Option3", leftAlign, options, "Radio Buttons")

        'List1
        controlType = swPropertyManagerPageControlType_e.swControlType_Listbox
        leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
        options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
        list1 = group1.AddControl(list1ID, controlType, "Sample List", leftAlign, options, "Contains a list of items")
        If Not list1 Is Nothing Then
            Dim items() As String = New String() {"One Fish", "Two Fish", "Red Fish", "Blue Fish"}
            list1.Height = 50
            list1.AddItems(items)
        End If

添加控件control,有各种类型,其枚举类型为http://help.solidworks.com/2017/english/api/swconst/solidworks.interop.swconst~solidworks.interop.swconst.swpropertymanagerpagecontroltype_e.html
swPropertyManagerPageControlType_e Enumeration

swControlType_ActiveX   10
swControlType_Bitmap    14
swControlType_BitmapButton  11
swControlType_Button    3
swControlType_CheckableBitmapButton 12
swControlType_Checkbox  2
swControlType_Combobox  7
swControlType_Label 1
swControlType_Listbox   6
swControlType_Numberbox 8
swControlType_Option    4
swControlType_Selectionbox  9
swControlType_Slider    13
swControlType_Textbox   5
swControlType_WindowFromHandle  15

leftalign 用来控制控件的位置
枚举类型为

swControlAlign_DoubleIndent 3
swControlAlign_Indent   2
swControlAlign_LeftEdge 1

接下来便是调用AddControl方法添加控件了AddControl(ID, ControlType, Caption, LeftAlign, Options, Tip)
ID
ControlType Type of control as defined in swPropertyManagerPageControlType_e
Caption Caption of the control
LeftAlign Left alignment of this control as defined in swPropertyManagerPageControlLeftAlign_e
Options Options as defined in swAddControlOptions_e (see Remarks)
Tip Tool tip text for the control

下面的控制添加也是类似的方法,可以根据需要添加不同的控件。

三. solidworks实体选择

'Add Controls to Group2
        'Selection1
        controlType = swPropertyManagerPageControlType_e.swControlType_Selectionbox
        leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
        options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
        selection1 = group2.AddControl(selection1ID, controlType, "Sample Selectionbox", leftAlign, options, "Displays items selected in main view")
        If Not selection1 Is Nothing Then
            Dim filter() As Integer = New Integer() {swSelectType_e.swSelVERTICES, swSelectType_e.swSelEDGES}
            selection1.Height = 50
            selection1.SetSelectionFilters(filter)
        End If

四. 数字输入框

controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox
        leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
        options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
        num1 = group2.AddControl(num1ID, controlType, "Sample Numberbox", leftAlign, options, "Allows numerical input")
        If Not num1 Is Nothing Then
            num1.SetRange(swNumberboxUnitType_e.swNumberBox_UnitlessDouble, 100.0, 0.0, 0.01, True)
            num1.Value = 50.0
        End If

数字输入框,其中有setrange方法SetRange(Units, Minimum, Maximum, Increment, Inclusive)
http://help.solidworks.com/2017/english/api/sldworksapi/solidworks.interop.sldworkssolidworks.interop.sldworks.ipropertymanagerpagenumberboxsetrange.html
Units 单位类型
Number box units as defined in swNumberboxUnitType_e
Minimum 最小值
Number box minimum value
Maximum 最大值
Number box maximum value
Increment 增量
Number box increment
Inclusive 包括调整箭头?
True sets the range as inclusive, false sets it as exclusive
单位类型的枚举值:

swNumberBox_Angle 角度    4
swNumberBox_Density 5
swNumberBox_Force   7 
swNumberBox_Frequency   10 
swNumberBox_Gravity 重力 8 
swNumberBox_Length  长度 3
swNumberBox_Percent 百分比 11 
swNumberBox_Stress  6
swNumberBox_Time    时间 9 
swNumberBox_UnitlessDouble  2
swNumberBox_UnitlessInteger 1 

五. 下拉菜单

controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox
        leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
        options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
        num1 = group2.AddControl(num1ID, controlType, "Sample Numberbox", leftAlign, options, "Allows numerical input")
        If Not num1 Is Nothing Then
            num1.SetRange(swNumberboxUnitType_e.swNumberBox_UnitlessDouble, 100.0, 0.0, 0.01, True)
            num1.Value = 50.0
        End If
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,519评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,842评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,544评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,742评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,646评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,027评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,169评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,324评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,268评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,299评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,996评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,591评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,911评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,288评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,871评论 2 341

推荐阅读更多精彩内容

  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,435评论 0 13
  • 平凡不可恨,不可怕,怕的是我们自己不甘心,最后筋疲力竭地忍受平凡。
    42_aa09阅读 56评论 0 1
  • 开学了,假期前一天的印象依旧很深刻,转眼就开学了。工作第四年半,新学期了自己却感觉没有做好什么准备,心中有一丝焦虑...
    韧针小郭阅读 192评论 0 0
  • 参与简书日更活动后,基本晚上12点左右睡觉。早上7点半前起床洗漱,保证有半个小时用于看书。 高强度加班,作息全部紊...
    豪_5dbc阅读 206评论 0 1