コード例 #1
0
ファイル: VistaForm.cs プロジェクト: amedinarcr/fop
        /// <summary>
        /// 根据鼠标不同的位置进行大小调整
        /// </summary>
        private void ChangeFormSize()
        {
            //为什么要加入一个位置上面的判断呢,这是为了一个细节考虑的,如果不加判断,拖动起来就会感觉怪怪的,自己试一下。
            Point mousePos = PointToClient(MousePosition);
            //上
            if (mousePos.X > m_FormEdge && mousePos.X < this.Width - m_FormEdge && mousePos.Y <= m_FormEdge && b_IsMouseDown && m_MousePosition == VistaMousePosition.NORMAL)
            {
                m_MousePosition = VistaMousePosition.TOP;
            }
            //下
            else if (mousePos.X > m_FormEdge && mousePos.X < this.Width - m_FormEdge && mousePos.Y > this.Height - m_FormEdge && b_IsMouseDown && m_MousePosition == VistaMousePosition.NORMAL)
            {
                m_MousePosition = VistaMousePosition.BOTTOM;
            }
            //左
            else if (mousePos.X <= m_FormEdge && mousePos.Y > m_FormEdge && mousePos.Y < this.Height - m_FormEdge && b_IsMouseDown && m_MousePosition == VistaMousePosition.NORMAL)
            {
                m_MousePosition = VistaMousePosition.LEFT;
            }
            //右
            else if (mousePos.X >= this.Width - m_FormEdge && mousePos.Y > m_FormEdge && mousePos.Y < this.Height - m_FormEdge && b_IsMouseDown && m_MousePosition == VistaMousePosition.NORMAL)
            {
                m_MousePosition = VistaMousePosition.RIGHT;
            }
            //左上角
            else if (mousePos.X <= m_FormEdge && mousePos.Y <= m_FormEdge && b_IsMouseDown && m_MousePosition == VistaMousePosition.NORMAL)
            {
                m_MousePosition = VistaMousePosition.LEFTTOP;
            }
            //右上角
            else if (mousePos.X >= this.Width - m_FormEdge && mousePos.Y <= m_FormEdge && b_IsMouseDown && m_MousePosition == VistaMousePosition.NORMAL)
            {
                m_MousePosition = VistaMousePosition.RIGHTTOP;
            }
            //左下角
            else if (mousePos.X <= m_FormEdge && mousePos.Y >= this.Height - m_FormEdge && b_IsMouseDown && m_MousePosition == VistaMousePosition.NORMAL)
            {
                m_MousePosition = VistaMousePosition.LEFTBOTTOM;
            }
            //右下角
            else if (mousePos.X >= this.Width - m_FormEdge && mousePos.Y >= this.Height - m_FormEdge && b_IsMouseDown && m_MousePosition == VistaMousePosition.NORMAL)
            {
                m_MousePosition = VistaMousePosition.RIGHTBOTTOM;
            }
            //默认
            //else
            //{
            //    m_MousePosition = VistaMousePosition.NORMAL;
            //}
            if (b_IsMouseDown)
            {
                if (m_MousePosition != VistaMousePosition.NORMAL)
                {

                    int right, bottom;
                    switch (m_MousePosition)
                    {
                        case VistaMousePosition.TOP:
                            bottom = this.Bottom;
                            this.Top = MousePosition.Y;
                            this.Height = bottom - this.Top;
                            break;
                        case VistaMousePosition.BOTTOM:
                            this.Height = MousePosition.Y - this.Top;
                            break;
                        case VistaMousePosition.LEFT:
                            right = this.Right;
                            this.Left = MousePosition.X;
                            this.Width = right - this.Left;
                            break;
                        case VistaMousePosition.RIGHT:
                            this.Width = Control.MousePosition.X - this.Left;
                            break;
                        case VistaMousePosition.LEFTTOP:
                            right = this.Right;
                            bottom = this.Bottom;
                            this.Top = MousePosition.Y;
                            this.Height = bottom - this.Top;
                            this.Left = MousePosition.X;
                            this.Width = right - this.Left;
                            break;
                        case VistaMousePosition.RIGHTTOP:
                            bottom = this.Bottom;
                            this.Top = MousePosition.Y;
                            this.Height = bottom - this.Top;
                            this.Width = Control.MousePosition.X - this.Left;
                            break;
                        case VistaMousePosition.LEFTBOTTOM:
                            right = this.Right;
                            this.Height = MousePosition.Y - this.Top;
                            this.Left = MousePosition.X;
                            this.Width = right - this.Left;
                            break;
                        case VistaMousePosition.RIGHTBOTTOM:
                            this.Height = MousePosition.Y - this.Top;
                            this.Width = Control.MousePosition.X - this.Left;
                            break;
                    }
                    Invalidate(false);
                    b_IsChangingSize = true;
                }
            }
        }
コード例 #2
0
ファイル: VistaForm.cs プロジェクト: amedinarcr/fop
 private void VistaForm_MouseUp(object sender, MouseEventArgs e)
 {
     b_IsChangingSize = false;
     b_IsMouseDown = false;
     b_IsMoveForm = false;
     m_MousePosition = VistaMousePosition.NORMAL;
 }