|
您可能想知道您的调色板集是第一次创建以设置其停靠点还是出于任何其他目的。为此,您可以在保存 PaletteSet 时保存自定义数据,这些数据在第一次加载 PaletteSet 时显然不可用。
下面是一个示例代码,用于在创建组件面板集时将 PaletteSet 的默认停靠设置为 DockSides.Left。在后续会话中,停靠不会更改,并且 PaletteSet 应保留用户设置的位置。
[code]using Autodesk.AutoCAD.Windows;
static bool _isFirstTime = true ;
MyUserControl ctrl = null;
PaletteSet set = null;
[CommandMethod("Test" )]
public void commandMethodTest()
{
if (set == null)
{
set = new PaletteSet("MyPalette" ,
new Guid("{43FFB063-DF0B-474B-9856-7886305CC3E8}" ));
set.Load +=
new PalettePersistEventHandler
(ps_Load);
set.Save +=
new PalettePersistEventHandler
(ps_Save);
if (ctrl == null)
{
ctrl = new MyUserControl();
set.Add("MyPalette" , ctrl);
set.Style = PaletteSetStyles.ShowCloseButton;
}
}
set.Visible = true ;
Document doc
= Application.DocumentManager.MdiActiveDocument;
Editor ed = doc.Editor;
if (_isFirstTime)
{
ed.WriteMessage("First Time, Set the Dock status" );
set.Dock = DockSides.Left;
_isFirstTime = false ;
}
else
{
ed.WriteMessage("Not the first time, Do nothing.
Leave it to the previous settings");
}
}
private static void ps_Load(object sender,
PalettePersistEventArgs e)
{
String sIsFirstTime =
(String)e.ConfigurationSection.ReadProperty
("IsFirstTime" , "Yes" );
if (sIsFirstTime.Equals("No" ))
{
_isFirstTime = false ;
}
}
private static void ps_Save(object sender,
PalettePersistEventArgs e)
{
e.ConfigurationSection.WriteProperty(
"IsFirstTime" , "No" );
}[/code] |
|