去掉窗体最大化保留最小化、关闭

首先这个功能 光靠调整窗体属性是做不到的,只能去自定义。

思路:

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个事件的代码:

isInMove = true;
                oldPoint = PointToScreen(e.Location);
MouseDown
 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;
MouseMove
isInMove = false;
MouseUp

PS:你要拖动窗体的哪一个部位,你就在哪一个Panel里面写这个事件。

 

  

posted @ 2016-03-24 17:56  Jean-Study  阅读(749)  评论(0编辑  收藏  举报