private void HandleControlParent()
        {
            if (this.controlLastParent != null)
            {
                if (this.controlLastParent != this.Control.Parent)
                {
                    ((Control)this.controlLastParent).SizeChanged -= OnControlParentSizeChanged;
                }
            }

            if (this.Control.Parent != null)
            {
                this.Control.Parent.SizeChanged += OnControlParentSizeChanged;

                HandleDockOnCenter();
            }

            PropertyInfo        propertyInfo = this.Control.GetType().GetProperty("LastParentChangingEventHandler", BindingFlags.Public | BindingFlags.Instance);
            ControlEventHandler lastParentChangingEventHandler = (ControlEventHandler)propertyInfo?.GetValue(this.Control);

            lastParentChangingEventHandler?.Invoke(this.Control, new ControlEventArgs(this.controlLastParent));

            this.controlLastParent = this.Control.Parent;
        }
 public static void RaiseControlEvent(object objectRaisingEvent, ControlEventHandler controlEventHandlerRaised, ControlEventArgs controlEventArgs)
 {
     controlEventHandlerRaised?.Invoke(objectRaisingEvent, controlEventArgs);
 }