private void ProcessMouseUP( Point mousePoint, Rectangle closeBoxRect, Rectangle minimizeBoxRect, Rectangle maximizeBoxRect, bool closeBoxVisibale, bool minimizeBoxVisibale, bool maximizeBoxVisibale) { _mouseDown = false; if (closeBoxVisibale) { if (closeBoxRect.Contains(mousePoint)) { if (CloseBoxState == ControlBoxState.Pressed) { _owner.Close(); CloseBoxState = ControlBoxState.Normal; return; } } CloseBoxState = ControlBoxState.Normal; } if (minimizeBoxVisibale) { if (minimizeBoxRect.Contains(mousePoint)) { if (MinimizeBoxState == ControlBoxState.Pressed) { _owner.WindowState = FormWindowState.Minimized; MinimizeBoxState = ControlBoxState.Normal; return; } } MinimizeBoxState = ControlBoxState.Normal; } if (maximizeBoxVisibale) { if (maximizeBoxRect.Contains(mousePoint)) { if (MaximizeBoxState == ControlBoxState.Pressed) { bool maximize = _owner.WindowState == FormWindowState.Maximized; if (maximize) { _owner.WindowState = FormWindowState.Normal; } else { _owner.WindowState = FormWindowState.Maximized; } MaximizeBoxState = ControlBoxState.Normal; return; } } MaximizeBoxState = ControlBoxState.Normal; } }