首先这个功能 光靠调整窗体属性是做不到的,只能去自定义。
思路:
1、把form的FormBorderStyle属性改为None,去掉最外面的一层控件
2、接着在最上面一层加上一个panel,自己坐一个标题和2个最小化和关闭的button,button的样式随便弄
3、实现关闭、最小化以及窗体移动的功能
关闭和最小化两个功能比较好实现
关闭:this.Close();
最小化: this.WindowState = FormWindowState.Minimized;
最后实现移动的事件,其实很简单,要用到MouseDown、MouseUp、MouseMove这3个事件。
先定义两个变量:
bool isInMove = false;//控制是否移动
Point oldPoint;//定义点
下面是这3个事件的代码:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
isInMove = true; oldPoint = PointToScreen(e.Location);
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
if (!isInMove) return; Point pt = PointToScreen(e.Location); if (pt.X == oldPoint.X || pt.Y == oldPoint.Y) return; this.Location = new Point(this.Location.X + pt.X - oldPoint.X, this.Location.Y + pt.Y - oldPoint.Y); oldPoint = pt;
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
isInMove = false;
PS:你要拖动窗体的哪一个部位,你就在哪一个Panel里面写这个事件。