Example #1
0
 /// <summary>
 ///     引发 System.Windows.Forms.Form.MouseDown。
 /// </summary>
 /// <param name="e">包含事件数据的 System.Windows.Forms.MouseEventArgs。</param>
 protected override void OnMouseDown(MouseEventArgs e)
 {
     base.OnMouseDown(e);
     if (TitleBarMenuRect.Contains(e.Location))
     {
         TitleBarMenuState = TMouseState.Down;
     }
 }
Example #2
0
 /// <summary>
 ///     引发 System.Windows.Forms.Form.MouseUp。
 /// </summary>
 /// <param name="e">包含事件数据的 System.Windows.Forms.MouseEventArgs。</param>
 protected override void OnMouseUp(MouseEventArgs e)
 {
     base.OnMouseUp(e);
     if (TitleBarMenuRect.Contains(e.Location) && TitleBarMenuState == TMouseState.Down)
     {
         TitleBarMenuState = TMouseState.Up;
         MenuClick?.Invoke(this, EventArgs.Empty);
         var contextMenuStrip = MenuLabel.ContextMenuStrip;
         if (contextMenuStrip != null)
         {
             contextMenuStrip.Closed -= ContextMenuStrip_Closed;
             contextMenuStrip.Closed += ContextMenuStrip_Closed;
             var point = PointToScreen(new Point(TitleBarMenuRect.Left + TitleBarMenuRect.Width / 2 - 3,
                                                 TitleBarMenuRect.Top + TitleBarMenuRect.Height));
             contextMenuStrip.Show(point);
         }
     }
 }
Example #3
0
        /// <summary>
        /// 引发 System.Windows.Forms.Form.MouseMove。
        /// </summary>
        /// <param name="e">包含事件数据的 System.Windows.Forms.MouseEventArgs。</param>
        protected override void OnMouseMove(MouseEventArgs e)
        {
            base.OnMouseMove(e);
            if (e.Button == MouseButtons.Left)
            {
                return;
            }
            var    flag    = true;
            string tipText = null;
            var    point   = e.Location;

            if (CloseContains(point))
            {
                flag = false;
                if (CloseState != TMouseState.Move)
                {
                    CloseState = TMouseState.Move;
                    tipText    = "关闭";
                }
            }
            else
            {
                CloseState = TMouseState.Normal;
            }
            if (MiniRect.Contains(point))
            {
                flag = false;
                if (MinState != TMouseState.Move)
                {
                    MinState = TMouseState.Move;
                    tipText  = "最小化";
                }
            }
            else
            {
                MinState = TMouseState.Normal;
            }
            if (MaxRect.Contains(point))
            {
                flag = false;
                if (MaxState != TMouseState.Move)
                {
                    MaxState = TMouseState.Move;
                    tipText  = WindowState == FormWindowState.Maximized ? "还原" : "最大化";
                }
            }
            else
            {
                MaxState = TMouseState.Normal;
            }
            if (TitleBarMenuRect.Contains(e.Location))
            {
                flag = false;
                if (TitleBarMenuState != TMouseState.Move)
                {
                    TitleBarMenuState = TMouseState.Move;
                    tipText           = "菜单栏";
                }
            }
            else
            {
                TitleBarMenuState = TMouseState.Normal;
            }
            if (tipText != null)
            {
                ShowTooTip(tipText);
            }
            if (flag)
            {
                HideToolTip();
            }
        }