/// <summary> /// Initializes the designer with the specified component. /// </summary> /// <param name="component">The IComponent to associate the designer with.</param> public override void Initialize(IComponent component) { // Let base class do standard stuff base.Initialize(component); // The resizing handles around the control need to change depending on the // value of the AutoSize and AutoSizeMode properties. When in AutoSize you // do not get the resizing handles, otherwise you do. AutoResizeHandles = true; // Cast to correct type _header = component as KryptonHeader; if (_header != null) { // Hook into header event _header.GetViewManager().MouseUpProcessed += OnHeaderMouseUp; _header.GetViewManager().DoubleClickProcessed += OnHeaderDoubleClick; } // Get access to the design services _designerHost = (IDesignerHost)GetService(typeof(IDesignerHost)); _changeService = (IComponentChangeService)GetService(typeof(IComponentChangeService)); _selectionService = (ISelectionService)GetService(typeof(ISelectionService)); // We need to know when we are being removed _changeService.ComponentRemoving += OnComponentRemoving; }
/// <summary> /// Releases all resources used by the component. /// </summary> /// <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param> protected override void Dispose(bool disposing) { // Unhook from events ViewManager vm = _header?.GetViewManager(); if (vm != null) { vm.MouseUpProcessed -= OnHeaderMouseUp; vm.DoubleClickProcessed -= OnHeaderDoubleClick; } if (_changeService != null) { _changeService.ComponentRemoving -= OnComponentRemoving; } // Must let base class do standard stuff base.Dispose(disposing); }