zoukankan      html  css  js  c++  java
  • Create PropertyManager Page Example (VB.NET)

      1 SolidWorks API Help
      2 Create PropertyManager Page Example (VB.NET)
      3 This example shows how to create a PropertyManager page that contains two selection boxes, a combo box, 
      4 
      5 and a list box. This example also shows how to handle focus events for these controls. 
      6 
      7  
      8 
      9 NOTE: If the model is an assembly and it contains multiple components and you want to allow the user to 
     10 
     11 select edges, faces, or vertices, then you must specify swSelCOMPSDONTOVERRIDE as an element of 
     12 
     13 SelType for the ISldWorks::SetSelectionFilters method. Otherwise, if the user attempts to select an 
     14 
     15 edge, face, or vertex, then the entire component might get selected and not the edge, face, or vertex. 
     16 
     17 This example demonstrates how to specify the elements for SelType.
     18 
     19  
     20 
     21 '----------------------------------------------------------------------------
     22 
     23 ' Preconditions: 
     24 
     25 ' 1. Copy Modules - main to your project.
     26 
     27 ' 2. Copy Class Modules - clsPropMgr to a class in your project.
     28 
     29 ' 3. Add the SolidWorks.Interop.swpublished primary interop assembly
     30 
     31 '    reference to your project (right-click the name of your project, select
     32 
     33 '    Add Reference, and select SolidWorks.Interop.swpublished on the .NET
     34 
     35 '    tab.
     36 
     37 ' 4. Ensure that the assembly document opened by the macro exists.
     38 
     39 ' 5. Run the macro to open the assembly document and PropertyManager page.
     40 
     41 '
     42 
     43 ' Postconditions: 
     44 
     45 ' A PropertyManager page called Comps is created. Comps contains a selection box 
     46 
     47 ' where the user's selections are shown, a drop-down combo box where Value 2 
     48 
     49 ' is selected, and a list box where Value 1 is selected. 
     50 
     51 '
     52 
     53 ' Examine the contents of Comps and the Immediate Window as you 
     54 
     55 ' perform each of these steps: 
     56 
     57 ' 1. Click a component in the assembly to add to the 
     58 
     59 '    first selection box. 
     60 
     61 ' 2. Locate, but do not move, the cursor in the graphics area.
     62 
     63 ' 3. Press the right-mouse button.
     64 
     65 ' 4. Click a component in the assembly to add to the second selection box. 
     66 
     67 ' 5. Click Value 4 in the list box at the bottom of Comps. 
     68 
     69 ' 6. Click Value 1 in the list box at the bottom of Comps. 
     70 
     71 ' 7. Click the first selection box. 
     72 
     73 ' 8. Close the PropertyManager page.
     74 
     75 '  
     76 
     77 '  NOTES: 
     78 
     79 '  *  After running this macro, select the
     80 
     81 '     Tools > Options > System Options > Stop VSTA debugger 
     82 
     83 '     on macro exit checkbox.
     84 
     85 '  *  Because the assembly document is used elsewhere, 
     86 
     87 '     do not save any changes when closing the document.
     88 
     89 '---------------------------------------------------------------------------- 
     90 
     91 'Modules - main
     92 
     93 Imports SolidWorks.Interop.sldworks
     94 
     95 Imports SolidWorks.Interop.swconst
     96 
     97 Imports System
     98 
     99  
    100 
    101 Partial Class SolidWorksMacro
    102 
    103  
    104 
    105     Public Part As ModelDoc2
    106 
    107     Public WithEvents pm As clsPropMgr
    108 
    109  
    110 
    111     Sub main()
    112 
    113  
    114 
    115         Dim openDocErrors As Long
    116 
    117         Dim OpenDocWarnings As Long
    118 
    119  
    120 
    121         swApp.SetUserPreferenceToggle(swUserPreferenceToggle_e.swStopDebuggingVstaOnExit, False)
    122 
    123  
    124 
    125         Part = swApp.OpenDoc6("c:Program FilesSolidWorks CorpSolidWorkssamples	utorialadvdrawingsladed shaft.sldasm", swDocumentTypes_e.swDocASSEMBLY, swOpenDocOptions_e.swOpenDocOptions_Silent, "", openDocErrors, OpenDocWarnings)
    126 
    127  
    128 
    129         'Create a new instance of the PropertyManager class
    130 
    131         pm = New clsPropMgr(swApp)
    132 
    133         pm.Show()
    134 
    135  
    136 
    137     End Sub      
    138 
    139  
    140 
    141     Public swApp As SldWorks
    142 
    143  
    144 
    145 End Class
    146 
    147  
    148 
    149 Back to top
    150 
    151 'Class Modules - clsPropMgr
    152 
    153 Imports SolidWorks.Interop.sldworks
    154 
    155 Imports SolidWorks.Interop.swconst
    156 
    157 Imports SolidWorks.Interop.swpublished
    158 
    159 Imports System
    160 
    161 Imports System.Runtime.InteropServices
    162 
    163 Imports System.Diagnostics
    164 
    165  
    166 
    167 <ComVisibleAttribute(True)> _
    168 
    169 Public Class clsPropMgr
    170 
    171  
    172 
    173     Implements PropertyManagerPage2Handler9
    174 
    175  
    176 
    177     Dim swApp As SldWorks
    178 
    179  
    180 
    181     'General objects required for the PropertyManager page
    182 
    183     Dim pm_Page As PropertyManagerPage2
    184 
    185     Dim pm_Group As PropertyManagerPageGroup
    186 
    187     Dim pm_Selection As PropertyManagerPageSelectionbox
    188 
    189     Dim pm_Selection2 As PropertyManagerPageSelectionbox
    190 
    191     Dim pm_Label As PropertyManagerPageLabel
    192 
    193     Dim pm_Combo As PropertyManagerPageCombobox
    194 
    195     Dim pm_List As PropertyManagerPageListbox
    196 
    197  
    198 
    199     'Each object in the page needs a unique ID
    200 
    201     Const GroupID As Integer = 1
    202 
    203     Const LabelID As Integer = 2
    204 
    205     Const SelectionID As Integer = 3
    206 
    207     Const ComboID As Integer = 4
    208 
    209     Const ListID As Integer = 5
    210 
    211     Const Selection2ID As Integer = 6
    212 
    213  
    214 
    215     Dim ClickedCancel As Boolean
    216 
    217     Dim retVal As Integer
    218 
    219  
    220 
    221     Sub Show()
    222 
    223         pm_Page.Show2(0)
    224 
    225     End Sub
    226 
    227  
    228 
    229     'The following runs when a new instance
    230 
    231     'of the class is created
    232 
    233     Public Sub New(ByVal swApp As SldWorks)
    234 
    235  
    236 
    237         Dim PageTitle As String
    238 
    239         Dim caption As String
    240 
    241         Dim tip As String
    242 
    243         Dim options As Long
    244 
    245         Dim longerrors As Long
    246 
    247         Dim controlType As Integer
    248 
    249         Dim alignment As Integer
    250 
    251         Dim listItems(3) As String
    252 
    253  
    254 
    255         'Set the variables for the page
    256 
    257         PageTitle = "Comps"
    258 
    259         options = swPropertyManagerButtonTypes_e.swPropertyManager_OkayButton _
    260 
    261             + swPropertyManagerButtonTypes_e.swPropertyManager_CancelButton _
    262 
    263             + swPropertyManagerPageOptions_e.swPropertyManagerOptions_LockedPage _
    264 
    265             + swPropertyManagerPageOptions_e.swPropertyManagerOptions_PushpinButton
    266 
    267  
    268 
    269         'Create the PropertyManager page
    270 
    271         pm_Page = CType(swApp.CreatePropertyManagerPage(PageTitle, _
    272 
    273             options, Me, longerrors), PropertyManagerPage2)
    274 
    275  
    276 
    277         'Make sure that the page was created properly
    278 
    279         If longerrors = swPropertyManagerPageStatus_e.swPropertyManagerPage_Okay Then
    280 
    281             'Begin adding the controls to the page
    282 
    283  
    284 
    285             'Create the group box
    286 
    287             caption = "Comps"
    288 
    289             options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + _
    290 
    291             swAddGroupBoxOptions_e.swGroupBoxOptions_Expanded
    292 
    293             pm_Group = pm_Page.AddGroupBox(GroupID, caption, options)
    294 
    295  
    296 
    297             'Create two selection boxes
    298 
    299             controlType = swPropertyManagerPageControlType_e.swControlType_Selectionbox
    300 
    301             caption = ""  ' No caption for selection boxes
    302 
    303             alignment = swPropertyManagerPageControlLeftAlign_e.swControlAlign_Indent
    304 
    305             options = swAddControlOptions_e.swControlOptions_Visible + _
    306 
    307                 swAddControlOptions_e.swControlOptions_Enabled
    308 
    309             tip = "Select an edge, face, vertex, solid body, or a component"
    310 
    311             pm_Selection = pm_Group.AddControl(SelectionID, _
    312 
    313                 controlType, caption, alignment, options, tip)
    314 
    315             pm_Selection2 = pm_Group.AddControl(Selection2ID, _
    316 
    317                 controlType, caption, alignment, options, tip)
    318 
    319             Dim filters(6) As swSelectType_e
    320 
    321             filters(0) = swSelectType_e.swSelEDGES
    322 
    323             filters(1) = swSelectType_e.swSelREFEDGES
    324 
    325             filters(2) = swSelectType_e.swSelFACES
    326 
    327             filters(3) = swSelectType_e.swSelVERTICES
    328 
    329             filters(4) = swSelectType_e.swSelSOLIDBODIES
    330 
    331             filters(5) = swSelectType_e.swSelCOMPONENTS
    332 
    333             filters(6) = swSelectType_e.swSelCOMPSDONTOVERRIDE
    334 
    335             Dim filterObj As Object
    336 
    337             filterObj = filters
    338 
    339             pm_Selection.SingleEntityOnly = False
    340 
    341             pm_Selection.AllowMultipleSelectOfSameEntity = True
    342 
    343             pm_Selection.Height = 50
    344 
    345             pm_Selection.SetSelectionFilters(filterObj)
    346 
    347             pm_Selection2.SingleEntityOnly = False
    348 
    349             pm_Selection2.AllowMultipleSelectOfSameEntity = True
    350 
    351             pm_Selection2.Height = 50
    352 
    353             pm_Selection2.SetSelectionFilters(filterObj)
    354 
    355  
    356 
    357             ' Create a combo box
    358 
    359             controlType = swPropertyManagerPageControlType_e.swControlType_Combobox
    360 
    361             caption = ""
    362 
    363             alignment = swPropertyManagerPageControlLeftAlign_e.swControlAlign_Indent
    364 
    365             options = swAddControlOptions_e.swControlOptions_Visible + _
    366 
    367                 swAddControlOptions_e.swControlOptions_Enabled
    368 
    369  
    370 
    371             tip = "Select a value from the drop-down"
    372 
    373             pm_Combo = pm_Group.AddControl(ComboID, _
    374 
    375                 controlType, caption, alignment, options, tip)
    376 
    377             If Not pm_Combo Is Nothing Then
    378 
    379                 pm_Combo.Height = 50
    380 
    381                 listItems(0) = "Value 1"
    382 
    383                 listItems(1) = "Value 2"
    384 
    385                 listItems(2) = "Value 3"
    386 
    387                 listItems(3) = "Value 4"
    388 
    389                 pm_Combo.AddItems(listItems)
    390 
    391                 pm_Combo.CurrentSelection = 0
    392 
    393             End If
    394 
    395  
    396 
    397             ' Create a list box
    398 
    399             controlType = swPropertyManagerPageControlType_e.swControlType_Listbox
    400 
    401             caption = ""
    402 
    403             alignment = swPropertyManagerPageControlLeftAlign_e.swControlAlign_Indent
    404 
    405             options = swAddControlOptions_e.swControlOptions_Visible + _
    406 
    407                 swAddControlOptions_e.swControlOptions_Enabled
    408 
    409             tip = "Multi-select values from the list box"
    410 
    411             pm_List = pm_Group.AddControl(ListID, _
    412 
    413                 controlType, caption, alignment, options, tip)
    414 
    415             pm_List.Style = swPropMgrPageListBoxStyle_e.swPropMgrPageListBoxStyle_MultipleItemSelect
    416 
    417             pm_List.Height = 50
    418 
    419             If Not pm_List Is Nothing Then
    420 
    421                 pm_List.Height = 50
    422 
    423                 listItems(0) = "Value 1"
    424 
    425                 listItems(1) = "Value 2"
    426 
    427                 listItems(2) = "Value 3"
    428 
    429                 listItems(3) = "Value 4"
    430 
    431                 pm_List.AddItems(listItems)
    432 
    433                 pm_List.SetSelectedItem(1, True)
    434 
    435             End If
    436 
    437  
    438 
    439         Else  'If the page is not created
    440 
    441  
    442 
    443             MsgBox("An error occurred while attempting to create the " _
    444 
    445                 & "PropertyManager Page", vbCritical)
    446 
    447  
    448 
    449         End If
    450 
    451  
    452 
    453     End Sub
    454 
    455  
    456 
    457     Public Sub AfterActivation() Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.AfterActivation
    458 
    459     End Sub
    460 
    461  
    462 
    463     Public Sub AfterClose() Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.AfterClose
    464 
    465     End Sub
    466 
    467  
    468 
    469     Public Function OnActiveXControlCreated(ByVal Id As Integer, ByVal Status As Boolean) As Integer Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnActiveXControlCreated
    470 
    471     End Function
    472 
    473  
    474 
    475     Public Sub OnButtonPress(ByVal Id As Integer) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnButtonPress
    476 
    477     End Sub
    478 
    479  
    480 
    481     Public Sub OnCheckboxCheck(ByVal Id As Integer, ByVal Checked As Boolean) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnCheckboxCheck
    482 
    483     End Sub
    484 
    485  
    486 
    487     Public Sub OnClose(ByVal Reason As Integer) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnClose
    488 
    489         If Reason = swPropertyManagerPageCloseReasons_e.swPropertyManagerPageClose_Cancel Then
    490 
    491             'Cancel button was clicked
    492 
    493             ClickedCancel = True
    494 
    495         ElseIf Reason = swPropertyManagerPageCloseReasons_e.swPropertyManagerPageClose_Okay Then
    496 
    497             'OK button was clicked
    498 
    499             ClickedCancel = False
    500 
    501         End If
    502 
    503     End Sub
    504 
    505  
    506 
    507     Public Sub OnComboboxEditChanged(ByVal Id As Integer, ByVal Text As String) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnComboboxEditChanged
    508 
    509     End Sub
    510 
    511  
    512 
    513     Public Sub OnComboboxSelectionChanged(ByVal Id As Integer, ByVal Item As Integer) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnComboboxSelectionChanged
    514 
    515     End Sub
    516 
    517  
    518 
    519     Public Sub OnGainedFocus(ByVal Id As Integer) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnGainedFocus
    520 
    521         Dim varArray As Object
    522 
    523         Debug.Print("Control box " & Id & " has gained focus")
    524 
    525         varArray = pm_List.GetSelectedItems
    526 
    527         pm_Combo.CurrentSelection = varArray(0)
    528 
    529     End Sub
    530 
    531  
    532 
    533     Public Sub OnGroupCheck(ByVal Id As Integer, ByVal Checked As Boolean) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnGroupCheck
    534 
    535     End Sub
    536 
    537  
    538 
    539     Public Sub OnGroupExpand(ByVal Id As Integer, ByVal Expanded As Boolean) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnGroupExpand
    540 
    541     End Sub
    542 
    543  
    544 
    545     Public Function OnHelp() As Boolean Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnHelp
    546 
    547     End Function
    548 
    549  
    550 
    551     Public Function OnKeystroke(ByVal Wparam As Integer, ByVal Message As Integer, ByVal Lparam As Integer, ByVal Id As Integer) As Boolean Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnKeystroke
    552 
    553     End Function
    554 
    555  
    556 
    557     Public Sub OnListboxSelectionChanged(ByVal Id As Integer, ByVal Item As Integer) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnListboxSelectionChanged
    558 
    559     End Sub
    560 
    561  
    562 
    563     Public Sub OnLostFocus(ByVal Id As Integer) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnLostFocus
    564 
    565         Debug.Print("Control box " & Id & " has lost focus")
    566 
    567     End Sub
    568 
    569  
    570 
    571     Public Function OnNextPage() As Boolean Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnNextPage
    572 
    573     End Function
    574 
    575  
    576 
    577     Public Sub OnNumberboxChanged(ByVal Id As Integer, ByVal Value As Double) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnNumberboxChanged
    578 
    579     End Sub
    580 
    581  
    582 
    583     Public Sub OnOptionCheck(ByVal Id As Integer) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnOptionCheck
    584 
    585     End Sub
    586 
    587  
    588 
    589     Public Sub OnPopupMenuItem(ByVal Id As Integer) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnPopupMenuItem
    590 
    591     End Sub
    592 
    593  
    594 
    595     Public Sub OnPopupMenuItemUpdate(ByVal Id As Integer, ByRef retval As Integer) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnPopupMenuItemUpdate
    596 
    597     End Sub
    598 
    599  
    600 
    601     Public Function OnPreview() As Boolean Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnPreview
    602 
    603     End Function
    604 
    605  
    606 
    607     Public Function OnPreviousPage() As Boolean Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnPreviousPage
    608 
    609     End Function
    610 
    611  
    612 
    613     Public Sub OnRedo() Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnRedo
    614 
    615     End Sub
    616 
    617  
    618 
    619     Public Sub OnSelectionboxCalloutCreated(ByVal Id As Integer) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnSelectionboxCalloutCreated
    620 
    621     End Sub
    622 
    623  
    624 
    625     Public Sub OnSelectionboxCalloutDestroyed(ByVal Id As Integer) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnSelectionboxCalloutDestroyed
    626 
    627     End Sub
    628 
    629  
    630 
    631     Public Sub OnSelectionboxFocusChanged(ByVal Id As Integer) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnSelectionboxFocusChanged
    632 
    633         Debug.Print("The focus has moved to selection box " & Id)
    634 
    635     End Sub
    636 
    637  
    638 
    639     Public Sub OnSelectionboxListChanged(ByVal Id As Integer, ByVal Count As Integer) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnSelectionboxListChanged
    640 
    641         ' Move focus to next selection box if right-mouse button pressed
    642 
    643         pm_Page.SetCursor(swPropertyManagerPageCursors_e.swPropertyManagerPageCursors_Advance)
    644 
    645         Debug.Print("The list in selection box " & Id & " has changed")
    646 
    647     End Sub
    648 
    649  
    650 
    651     Public Sub OnSliderPositionChanged(ByVal Id As Integer, ByVal Value As Double) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnSliderPositionChanged
    652 
    653     End Sub
    654 
    655  
    656 
    657     Public Sub OnSliderTrackingCompleted(ByVal Id As Integer, ByVal Value As Double) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnSliderTrackingCompleted
    658 
    659     End Sub
    660 
    661  
    662 
    663     Public Function OnSubmitSelection(ByVal Id As Integer, ByVal Selection As Object, ByVal SelType As Integer, ByRef ItemText As String) As Boolean Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnSubmitSelection
    664 
    665         OnSubmitSelection = True
    666 
    667     End Function
    668 
    669  
    670 
    671     Public Function OnTabClicked(ByVal Id As Integer) As Boolean Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnTabClicked
    672 
    673     End Function
    674 
    675  
    676 
    677     Public Sub OnTextboxChanged(ByVal Id As Integer, ByVal Text As String) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnTextboxChanged
    678 
    679     End Sub
    680 
    681  
    682 
    683     Public Sub OnUndo() Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnUndo
    684 
    685     End Sub
    686 
    687  
    688 
    689     Public Sub OnWhatsNew() Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnWhatsNew
    690 
    691     End Sub
    692 
    693  
    694 
    695     Public Sub OnListBoxRMBUp(ByVal Id As Integer, ByVal posX As Integer, ByVal posY As Integer) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnListboxRMBUp
    696 
    697     End Sub
    698 
    699 
    700     Public Function OnWindowFromHandleControlCreated(ByVal Id As Integer, ByVal Status As Boolean) As Integer Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnWindowFromHandleControlCreated
    701 
    702     End Function
    703 
    704  
    705 
    706     Public Sub OnNumberBoxTrackingCompleted(ByVal Id As Integer, ByVal Value As Double) Implements SolidWorks.Interop.swpublished.IPropertyManagerPage2Handler9.OnNumberBoxTrackingCompleted
    707 
    708     End Sub
    709 
    710 End Class
    711 
    
  • 相关阅读:
    Python学习总结之三 -- 优雅的字符串
    Python学习总结之二 -- 数据类型
    Python学习总结之一 -- 基础篇
    JavaWeb学习总结第三篇--走进JSP页面元素
    JavaWeb学习总结第二篇--第一个JavaWeb程序
    JavaWeb学习总结第一篇--初识JavaWeb
    三俊马 站立会议04
    三俊马 站立会议03
    三俊马 站立会议02
    三俊马 站立会议01
  • 原文地址:https://www.cnblogs.com/frankwu2014/p/3724061.html
Copyright © 2011-2022 走看看