solidworks propertymanager controls 控件

solidworks propertymanager controls 控件_第1张图片
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

你可能感兴趣的:(solidworks propertymanager controls 控件)