<?xml encoding=”UTF-8″>By Balaji Ramamoorthy
You may want to know if your PaletteSet is being created for the very first time to set its Docking or for any other purpose. To do this, you can save custom data when the PaletteSet gets saved which obviously will not be available at the very first time the PaletteSet is loaded.
Here is a sample code to set the default docking of a PaletteSet to DockSides.Left when it gets created. In subsequent sessions, the docking is not changed and the PaletteSet should retain the position that was set by the user.
<span>using</span><span> Autodesk.AutoCAD.Windows;</span>
<span>static</span><span> <span>bool</span><span> _isFirstTime = <span>true</span><span> ;</span></span></span>
MyUserControl ctrl = null;
PaletteSet set = null;
[CommandMethod(<span>"Test"</span><span> )]</span>
<span>public</span><span> <span>void</span><span> commandMethodTest()</span></span>
<span>{</span>
<span>if</span><span> (set == null)</span>
<span>{</span>
set = <span>new</span><span> PaletteSet(<span>"MyPalette"</span><span> ,</span></span>
<span>new</span><span> Guid(<span>"<span>{</span>43FFB063-DF0B-474B-9856-7886305CC3E8<span>}</span>"</span><span> ));</span></span>
set.Load +=
<span>new</span><span> PalettePersistEventHandler</span>
(ps_Load);
set.Save +=
<span>new</span><span> PalettePersistEventHandler</span>
(ps_Save);
<span>if</span><span> (ctrl == null)</span>
<span>{</span>
ctrl = <span>new</span><span> MyUserControl();</span>
set.Add(<span>"MyPalette"</span><span> , ctrl);</span>
set.Style = PaletteSetStyles.ShowCloseButton;
<span>}</span>
<span>}</span>
set.Visible = <span>true</span><span> ;</span>
Document doc
= Application.DocumentManager.MdiActiveDocument;
Editor ed = doc.Editor;
<span>if</span><span> (_isFirstTime)</span>
<span>{</span>
ed.WriteMessage(<span>"First Time, Set the Dock status"</span><span> );</span>
set.Dock = DockSides.Left;
_isFirstTime = <span>false</span><span> ;</span>
<span>}</span>
<span>else</span><span> </span>
<span>{</span>
ed.WriteMessage(<span>"Not the first time, Do nothing. </span><span> </span>
Leave it to the previous settings<span>");</span><span> </span>
<span>}</span>
<span>}</span>
<span>private</span><span> <span>static</span><span> <span>void</span><span> ps_Load(object sender, </span></span></span>
PalettePersistEventArgs e)
<span>{</span>
String sIsFirstTime =
(String)e.ConfigurationSection.ReadProperty
(<span>"IsFirstTime"</span><span> , <span>"Yes"</span><span> );</span></span>
<span>if</span><span> (sIsFirstTime.Equals(<span>"No"</span><span> ))</span></span>
<span>{</span>
_isFirstTime = <span>false</span><span> ;</span>
<span>}</span>
<span>}</span>
<span>private</span><span> <span>static</span><span> <span>void</span><span> ps_Save(object sender, </span></span></span>
PalettePersistEventArgs e)
<span>{</span>
e.ConfigurationSection.WriteProperty(
<span>"IsFirstTime"</span><span> , <span>"No"</span><span> );</span></span>
<span>}</span>

Leave a Reply to UnknownCancel reply