Fire Event After Selection Made (VB.NET)
This example shows how to fire an event after a selection is made in a part,
assembly, or drawing document.
'------------------------------------
' Preconditions:
' 1. Part, assembly, or drawing document
' is active.
' 2. Run this macro (press F5 and click Run).
'
' Postconditions:
' 1. Select an entity.
' 2. Message box is displayed confirming your
' selection. To open the message box, click
' its Windows taskbar button.
'
' NOTE: Tools > Options > Stop VSTA debugger on macro exit
' must not be selected for this macro to run to
' completion.
'----------------------------------------
Imports
SolidWorks.Interop.sldworks
Imports
SolidWorks.Interop.swconst
Imports System
Partial
Class SolidWorksMacro
Public
WithEvents pDoc
As PartDoc
Public
WithEvents aDoc
As AssemblyDoc
Public
WithEvents dDoc
As DrawingDoc
Public
Sub main()
Dim swModel
As ModelDoc2
swModel = swApp.ActiveDoc
' Determine the document type
' and set up event
handlers
If
swModel.GetType = swDocumentTypes_e.swDocPART
Then
pDoc = swModel
ElseIf swModel.GetType
= swDocumentTypes_e.swDocASSEMBLY Then
aDoc = swModel
ElseIf swModel.GetType
= swDocumentTypes_e.swDocDRAWING Then
dDoc = swModel
End
If
AttachEventHandlers()
End
Sub
Sub
AttachEventHandlers()
AttachSWEvents()
End
Sub
Sub
AttachSWEvents()
If
Not pDoc
Is
Nothing Then
AddHandler
pDoc.UserSelectionPostNotify, AddressOf
Me.pDoc_UserSelectionPostNotify
End
If
If
Not aDoc
Is
Nothing Then
AddHandler
aDoc.UserSelectionPostNotify, AddressOf
Me.aDoc_UserSelectionPostNotify
End
If
If
Not dDoc
Is
Nothing Then
AddHandler
dDoc.UserSelectionPostNotify, AddressOf
Me.dDoc_UserSelectionPostNotify
End
If
End
Sub
Private
Function pDoc_UserSelectionPostNotify()
As
Integer
MsgBox("Entity
selected in part document.")
End
Function
Public
Function aDoc_UserSelectionPostNotify()
As
Integer
MsgBox("Entity
selected in assembly document.")
End
Function
Private
Function dDoc_UserSelectionPostNotify()
As
Integer
MsgBox("Entity
selected in drawing document.")
End
Function
'''
<summary>
''' The SldWorks swApp
variable is pre-assigned for you.
'''
</summary>
Public
swApp As SldWorks
End
Class