PaletteSet in AutoCAD is hidden when its close button is clicked. To know when the palette is being closed, the "StateChanged" event can be used. Here is a sample code :
using Autodesk.AutoCAD.Windows;
static PaletteSet m_PalSet = null;
[CommandMethod (
"ShowMyPalette",
CommandFlags.Modal | CommandFlags.Session
)]
static public void Test1Method()
{
Document doc
= Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Editor ed = doc.Editor;
if (m_PalSet == null)
{
m_PalSet = new PaletteSet("WPF Palette", new Guid());
m_PalSet.Size = new Size(400, 600);
m_PalSet.DockEnabled =
(DockSides)((int)DockSides.Left
+ (int)DockSides.Right);
// For a WPF user control
MyWPFUserControl uc = new MyWPFUserControl();
m_PalSet.AddVisual("AddEnt", uc);
// For a WinForm user control
//MyWinFormUserControl uc = new MyWinFormUserControl();
//m_PalSet.Add("Test", uc);
m_PalSet.StateChanged += new PaletteSetStateEventHandler
(
PaletteSet_StateChanged
);
// Display our palette set
m_PalSet.EnableTransparency(true);
m_PalSet.KeepFocus = true;
}
m_PalSet.Visible = true;
}
static void PaletteSet_StateChanged(
object sender,
PaletteSetStateEventArgs e
)
{
Editor ed
= Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage (
"\nPalette StateChanged ! New State is : "
+ e.NewState.ToString()
);
}