/// <summary> /// Raises the MouseUp event. /// </summary> /// <param name="e">A MouseEventArgs that contains data about the OnMouseUp event.</param> protected override void OnMouseUp(MouseEventArgs e) { if (CaptionRectangle.Contains(e.X, e.Y)) { if ((ShowCloseIcon == false) && (ShowExpandIcon == false)) { OnExpandClick(this, EventArgs.Empty); } else if (ShowCloseIcon && (ShowExpandIcon == false)) { if (RectangleCloseIcon.Contains(e.X, e.Y) == false) { OnExpandClick(this, EventArgs.Empty); } } if (ShowExpandIcon) { if (RectangleExpandIcon.Contains(e.X, e.Y)) { OnExpandClick(this, EventArgs.Empty); } } if (ShowCloseIcon && _bIsClosable) { if (RectangleCloseIcon.Contains(e.X, e.Y)) { OnCloseClick(this, EventArgs.Empty); } } } }
protected override void OnMouseDown(MouseEventArgs e) { base.OnMouseDown(e); if (Movable && WindowState != FormWindowState.Maximized && e.Button == MouseButtons.Left && CaptionRectangle.Contains(e.Location)) { MoveControl(); } }
private WinApi.HitTest HitTestNCA(IntPtr hwnd, IntPtr wparam, IntPtr lparam) { Point pc = PointToClient(new Point((int)lparam)); if (Resizable && SizeGripRectangle.Contains(pc)) { return(WinApi.HitTest.HTBOTTOMRIGHT); } if (CaptionRectangle.Contains(pc)) { return(WinApi.HitTest.HTCAPTION); } return(WinApi.HitTest.HTCLIENT); }
protected override void OnMouseMove(MouseEventArgs e) { if (CaptionRectangle.Contains(e.X, e.Y)) { if (m_hoverStateCaptionBar == HoverState.None) { m_hoverStateCaptionBar = HoverState.Hover; OnCaptionBarHoverStateChanged(this, new HoverStateChangeEventArgs(m_hoverStateCaptionBar)); } } else if (m_hoverStateCaptionBar == HoverState.Hover) { m_hoverStateCaptionBar = HoverState.None; OnCaptionBarHoverStateChanged(this, new HoverStateChangeEventArgs(m_hoverStateCaptionBar)); } if (ShowExpandIcon || ShowCloseIcon) { if (RectangleExpandIcon.Contains(e.X, e.Y)) { if (m_hoverStateExpandIcon == HoverState.None) { m_hoverStateExpandIcon = HoverState.Hover; OnExpandIconHoverStateChanged(this, new HoverStateChangeEventArgs(m_hoverStateExpandIcon)); } } else if (m_hoverStateExpandIcon == HoverState.Hover) { m_hoverStateExpandIcon = HoverState.None; OnExpandIconHoverStateChanged(this, new HoverStateChangeEventArgs(m_hoverStateExpandIcon)); } if (RectangleCloseIcon.Contains(e.X, e.Y)) { if (m_hoverStateCloseIcon == HoverState.None) { m_hoverStateCloseIcon = HoverState.Hover; OnCloseIconHoverStateChanged(this, new HoverStateChangeEventArgs(m_hoverStateCloseIcon)); } } else if (m_hoverStateCloseIcon == HoverState.Hover) { m_hoverStateCloseIcon = HoverState.None; OnCloseIconHoverStateChanged(this, new HoverStateChangeEventArgs(m_hoverStateCloseIcon)); } } base.OnMouseMove(e); }
public virtual void OnMouseDown(MouseEventArgs e) { if (e.Button == MouseButtons.Left) { isPushed = ButtonRectangle.Contains(e.X, e.Y); if (!isPushed && e.Clicks == 2 && CaptionRectangle.Contains(e.X, e.Y)) { // ダブルクリックで閉じる IsCollapsed = !IsCollapsed; } else if (this.CaptionRectangle.Contains(e.Location)) { dragPt = e.Location; isDrag = true; } } else { isPushed = false; } }