protected override void OnMouseMove(MouseEventArgs aMArgs) { if (!_Dragging) { base.OnMouseMove(aMArgs); UpdateByCursorPos(aMArgs.Location); } else { Point lPoint = this.PointToScreen(aMArgs.Location); if (lPoint.Y == 0) { if (!_windowInfo.Assigned) { _windowInfo = new _sFormInfo(HostForm); } HostForm.WindowState = FormWindowState.Maximized; } else { if (HostForm.WindowState == FormWindowState.Maximized && lPoint.Y > 24) { // Now restoring window size and position: HostForm.WindowState = FormWindowState.Normal; if (_windowInfo.Assigned) { _windowInfo.RestoreForm(HostForm, lPoint); _windowInfo.Assigned = false; } startDraggingHost(lPoint); } else if (!_windowInfo.Assigned) { updateDragging(lPoint); } } } }