/// <summary> /// Открывает окно "Объекты" /// </summary> /// <param name="sender">Отправитель</param> /// <param name="e">Аргументы события</param> public static void ShowWellKnownDockWindow(object sender, EventArgs e) { try { // Получаем ссылку на службу именованных окон "Навигатора" IWellKnownNavigators wkn = ServicesManager.GetService(typeof(IWellKnownNavigators)) as IWellKnownNavigators; // Сначала ищем открытое окно "Объекты" WellKnownDockWindow sampleWindow = wkn.Get(WellKnownDockWindow.WindowName) as WellKnownDockWindow; // Окно не найдено - создаём новое окно if (sampleWindow == null) { // Новое окно sampleWindow = new WellKnownDockWindow(); // Регистрируем окно в списке именованных окон "Навигатора" wkn.Register(WellKnownDockWindow.WindowName, sampleWindow); } // Добавляем его в текущий докинг "Навигатора" sampleWindow.Show(ServicesManager.GetService(typeof(DockManager)) as DockManager); // Покажем окно на экране и сделаем его активным окном в докинге sampleWindow.Activate(); } catch (Exception x) { MessageBox.Show(x.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } }
/// <summary> /// Освободить занимаемые формой ресурсы /// </summary> /// <param name="disposing">true, если требуется освободить управляемые ресурсы</param> protected override void Dispose(bool disposing) { // Получаем ссылку на службу именованных окон "Навигатора" IWellKnownNavigators wkn = ServicesManager.GetService(typeof(IWellKnownNavigators)) as IWellKnownNavigators; // Удалим окно из списка именованных окон "Навигатора" if (disposing && wkn != null) { wkn.Unregister(this); } // Удаляем компоненты if (disposing && (components != null)) { components.Dispose(); } // Базовый деструктор base.Dispose(disposing); }