Fire Events When Display State Changes Example (C#)
This example shows how to fire the events related to changing display
states of a configuration in an assembly document.
//---------------------------------------------------------------
// Preconditions:
// (1)
Open an assembly document that has
// a
configuration with multiple display states.
// (2)
Run this macro in debug mode.
// (3)
Change the display state of
// the
active configuration in SolidWorks
// (click
the ConfigurationManager tab and double-click
// a
different display state).
//
// Postcondition: A message box is displayed informing
// you
that the display state is about
// change.
After the display state changes,
// another
message box is displayed
// informing
you that the display
// state
has changed.
//---------------------------------------------------------------
using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;
using System;
using System.Collections;
using System.Windows.Forms;
namespace Macro1.csproj
{
public
partial class SolidWorksMacro
{
public
AssemblyDoc swAssem;
public
void Main()
{
ModelDoc2
swModel;
Hashtable
openAssem;
swModel
= (ModelDoc2)swApp.ActiveDoc;
//Set
up events
swAssem
= (AssemblyDoc)swModel;
openAssem
= new Hashtable();
AttachEventHandlers();
}
///
<summary>
///
The SldWorks
swApp variable is pre-assigned for you.
///
</summary>
public
SldWorks swApp;
public
void AttachEventHandlers()
{
AttachSWEvents();
}
public
void AttachSWEvents()
{
swAssem.ActiveDisplayStateChangePreNotify +=
this.swAssem_ActiveDisplayStateChangePreNotify;
swAssem.ActiveDisplayStateChangePostNotify +=
this.swAssem_ActiveDisplayStateChangePostNotify;
}
public
int swAssem_ActiveDisplayStateChangePreNotify()
//Send
message when user changes display state in the ConfigurationManager
{
MessageBox.Show("The
active configuration's display state is about to change.");
return
1;
}
public
int swAssem_ActiveDisplayStateChangePostNotify(string
DisplayStateName)
//Send
message after user changes display state in the ConfigurationManager
{
MessageBox.Show("The
active configuration's display state has changed.");
return
1;
}
}
}