当前位置:文档之家› C#实现窗口自动隐藏

C#实现窗口自动隐藏

C#实现窗口自动隐藏

form automatically hide with C#

贵州省商业高等专科学校涂显政

Commercial college of guizhou

tu xianzheng

摘要:利用C#语言实现了靠屏边窗口自动隐藏及鼠标指向后自动弹出

关键字:C#,窗体,隐藏

Abstract: mark a form with C#, the form can automatically hide when it close the edge of screen and it can recover to normal when mouse point on it.

Key words: C#,form,hide

正文

一、C#简介

C#是由微软公司所开发的一种面向对象的、运行于.NET Framework之上的高级程序设计语言,目前有比较广泛的应用。

二、窗口自动隐藏

现实中有这样的程序设计需要,程序窗体在靠近屏幕边的时候,希望窗口能自动隐藏,仅显示很小的一条边,当鼠标指向这条边的时候,窗体会自动弹出。三、现实情况和设计目的

很多应用程序已经实现了这个功能,例如大家熟悉的QQ窗口或者一些考试软件都使用了这种窗体功能,但相关的介绍文章不多,这里用一种方式将其实现,供初学者和有实际需要者参考。

四、实现方法和过程

窗体自动隐藏在窗体靠屏幕的上、左、右边时都可以实现,为叙述简单起见,下面仅以向靠上边时隐藏为例来说明。

1、窗体初始设置:加入一个panel控件,设置它靠在窗体的上边,高度很窄,可以与窗体隐藏后的高度一样大,当然不一样大也可,将其enable属性设为false。

2、窗体自动隐藏:使用窗体的MouseLeave事件,当事件发生后,用窗体的location 属性判断窗体是否靠边,即判断location的Y值是否小于一个比较小的值,比如

5。若是,则记录窗体的高度和窗体FormBorderStyle属性(一会恢复时用),将窗体FormBorderStyle属性设为none,再把窗体height属性设为一个比较小的值,比如5,窗体即可以变成高只有5像素的一个小条,达到隐藏效果,再把panel 控件的enable属性设为true,以使其能接收事件。

3、窗体自动弹出:鼠标指向隐藏中的窗体,窗体会恢复成隐藏前的状态。但这个功能不能用窗体的MouseEnter事件来做,这样做会产生一个MouseLeave事件和MouseEnter事件的循环发生。解决的办法是在窗体中加入panel控件,窗体隐藏成一小条后,按前面的设置,在窗体上显示的就是panel控件,它可以接收事件,鼠标指向隐藏后的窗体,就是指向panel控件。Panel的MouseEnter事件发生后,恢复窗体高度和FormBorderStyle属性,为避免麻烦,将panel的enable 属性设为false。

五、部分源代码

1、窗体隐藏

private void Form1_MouseLeave(object sender, EventArgs e)

{

if (this.Location.Y < 5)

{

h = this.Height;

k = this.FormBorderStyle;

this.FormBorderStyle =

System.Windows.Forms.FormBorderStyle.None;

this.Height = 5;

panel1.Enabled = true;

}

}

2、恢复

private void panel1_MouseEnter(object sender, EventArgs e)

{this.FormBorderStyle = k;

this.Height = h;

panel1.Enabled = false;

}

以上功能在microsoft visual studio 2005中实现

六、参考文献:

MSDN Library for Visual Studio 2005

作者简介:涂显政(1968-),男(苗),贵州印江人,讲师,工程硕士。

联系方式:

通信地址:贵州省贵阳市云岩区小石城18栋1单元401 邮编:550004

手机:139********

相关主题
文本预览
相关文档 最新文档