C# 如何实现formborderstyle设置成none后如何移动窗口并可以改变大小

由于要求美观度所以我设置成none自行设置退出缩小等按钮。可是我发现设置成none后无法移动窗体也无法改变窗体大小!!请问如何设置成像传统的Window窗体那样点击窗体边缘来改变窗体大小,也可移动窗体。前提必须要在formborderstyle是none下!求指教!

设置为none后窗体已经没有了标题栏,窗体的移动、最大化、最小化、关闭这些需要自己写代码来完成。

窗体的移动:

        bool formMove = false;//窗体是否移动
        Point formPoint;//记录窗体的位置

private void Form4_MouseDown(object sender, MouseEventArgs e)//鼠标按下
        {
            formPoint = new Point();
            int xOffset;
            int yOffset;
            if (e.Button == MouseButtons.Left)
            {
                xOffset = -e.X - SystemInformation.FrameBorderSize.Width;
                yOffset = -e.Y - SystemInformation.CaptionHeight - SystemInformation.FrameBorderSize.Height;
                formPoint = new Point(xOffset, yOffset);
                formMove = true;//开始移动
            }
        }

private void Form4_MouseMove(object sender, MouseEventArgs e)//鼠标移动
        {
            if (formMove == true)
            {
                Point mousePos = Control.MousePosition;
                mousePos.Offset(formPoint.X, formPoint.Y);
                Location = mousePos;
            }
        }

private void Form4_MouseUp(object sender, MouseEventArgs e)//鼠标松开
        {
            if (e.Button == MouseButtons.Left)//按下的是鼠标左键
            {
                formMove = false;//停止移动
            }
        }

窗体的最大化、最小化和关闭:

需要自己拖三个picturebox控件到窗体的右上角,最大化、最小化和关闭的图标就自己去找了。添加picturebox的单击事件。如果要实现一些特效可以加入picturebox的MouseEnter、MouseLeave事件来更换图片。

private void pictureBox1_Click(object sender, EventArgs e)
        {
                 this.WindowState=FormWindowState.Minimized;//最小化
        }

private void pictureBox2_Click(object sender, EventArgs e)
        {

                      WindowState = FormWindowState.Maximized;//最大化

        }

private void pictureBox3_Click(object sender, EventArgs e)
        {
            this.Close();
        }

参考资料:http://hi.baidu.com/yyq745201/blog/item/5dd987ee0e78053cacafd595.html

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答