'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