Fire Selection After Selection Made (C#)
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).
//
// Postconditions:
// 1. Select an entity in a part, assembly, or
// drawing document.
// 2. A 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.
//----------------------------------------
using
SolidWorks.Interop.sldworks;
using
SolidWorks.Interop.swconst;
using System;
using System.Windows.Forms;
namespace
UserSelectionPostNotifyEventCSharp.csproj
{
partial
class
SolidWorksMacro
{
public PartDoc pDoc;
public AssemblyDoc
aDoc;
public DrawingDoc
dDoc;
public
void Main()
{
ModelDoc2 swModel;
swModel = (ModelDoc2)swApp.ActiveDoc;
// Determine the document type
// and set up
event handlers
if
(swModel.GetType() == (int)swDocumentTypes_e.swDocPART)
{
pDoc = (PartDoc)swModel;
}
else
if (swModel.GetType() == (int)swDocumentTypes_e.swDocASSEMBLY)
{
aDoc = (AssemblyDoc)swModel;
}
else
if (swModel.GetType() == (int)swDocumentTypes_e.swDocDRAWING)
{
dDoc = (DrawingDoc)swModel;
}
AttachEventHandlers();
}
public
void AttachEventHandlers()
{
AttachSWEvents();
}
public
void AttachSWEvents()
{
if ((pDoc !=
null))
{
pDoc.UserSelectionPostNotify += this.pDoc_UserSelectionPostNotify;
}
if ((aDoc !=
null))
{
aDoc.UserSelectionPostNotify += this.aDoc_UserSelectionPostNotify;
}
if ((dDoc !=
null))
{
dDoc.UserSelectionPostNotify += this.dDoc_UserSelectionPostNotify;
}
}
private
int pDoc_UserSelectionPostNotify()
{
int
functionReturnValue = 0;
MessageBox.Show("An entity was selected
in a part document.");
return
functionReturnValue;
}
public
int aDoc_UserSelectionPostNotify()
{
int
functionReturnValue = 0;
MessageBox.Show("An entity was selected
in a assembly document.");
return
functionReturnValue;
}
private
int dDoc_UserSelectionPostNotify()
{
int
functionReturnValue = 0;
MessageBox.Show("An entity was selected
in a drawing document.");
return
functionReturnValue;
}
///
<summary>
///
The SldWorks swApp variable is pre-assigned for you.
///
</summary>
public
SldWorks swApp;
}
}