22/05/2014
Событие закрытия PaletteSet
PaletteSet в AutoCAD становится невидимым когда нажимается кнопка закрытия. Чтобы узнать что палитра закрыта можно использовать событие "StateChanged".А вот и пример кода:
Код - C#: [Выделить]
- 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 Палитра", new Guid());
- m_PalSet.Size = new Size(400, 600);
- m_PalSet.DockEnabled =
- (DockSides)((int)DockSides.Left
- + (int)DockSides.Right);
- // Для пользовательского элемента управления WPF
- MyWPFUserControl uc = new MyWPFUserControl();
- m_PalSet.AddVisual("AddEnt", uc);
- // Для пользовательского элемента управления WinForm
- // MyWinFormUserControl uc = new MyWinFormUserControl();
- // m_PalSet.Add("Test", uc);
- m_PalSet.StateChanged += new PaletteSetStateEventHandler
- (
- PaletteSet_StateChanged
- );
- // Показываем палитры
- 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 (
- "\nПалитра изменила состояние! Новое состояние: "
- + e.NewState.ToString()
- );
- }
Источник: http://adndevblog.typepad.com/autocad/2012/04/event-for-paletteset-close.html
Обсуждение: http://adn-cis.org/forum/index.php?topic=746
Опубликовано 22.05.2014