今天接着上次的QQ程序继续操作。首先要将窗体标题栏隐藏(如右图),然后设置固定窗体,不允许自由拖动窗体大小。最后是写入代码,实现无标题栏窗体的拖动。另外再完成一个自动隐藏窗体的效果 | ![]() |
1.隐藏窗体标题栏
在窗体设计代码中修改FormBorderStyle属性,代码如下:
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
2.固定窗体大小,不允许自由拖动
在窗体设计代码中修改AutoSizeMode属性,代码如下:
this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
GrowAndShrink | 控件根据它的内容增大或缩小 |
GrowOnly | 控件可以根据其内容任意增大,但不会缩小至小于它的 Size 属性值。 |
3.拖动无标题栏的窗体
设置3个变量,代码如下
/// <summary>
/// 判断鼠标是否按下
/// </summary>
private Boolean _isDown = false;
/// <summary>
/// 原来的鼠标点
/// </summary>
private Point _oldPoint;
/// <summary>
/// 原来窗口点
/// </summary>
private Point _oldForm;
然后写入鼠标进入事件、鼠标按下事件、鼠标松开事件、鼠标移动事件
/// <summary>
/// 鼠标进入,恢复界面大小时间
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void MainForm_MouseEnter(object sender, EventArgs e)
{
this.timer1.Stop(); //需要一个timer组件
this.Height = 544;
}
/// <summary>
/// 按下鼠标事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void MainForm_MouseDown(object sender, MouseEventArgs e)
{
_isDown = true;
_oldPoint = new Point();
_oldPoint = e.Location;
_oldForm = this.Location;
}
/// <summary> /// 松开鼠标事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MainForm_MouseUp(object sender, MouseEventArgs e) { _isDown = false; } /// <summary> |