C#.NET 实现右下角弹出窗口
2012-10-29 15:20
337 查看
在做一个功能的时候,需要在右下角弹出一个提示窗口,像QQ那样的,找 了以前写的看了看,发现在任务栏高度发生变化时窗体会被遮盖住,这是因为窗体弹出的位置是控制在屏幕的右下角的,如果任务栏的高度发生变化,则窗体就会被遮盖,这样就需要在弹出窗体 的时候知道任务栏的高度,从而动态的控制窗体距离屏幕的距离。网上查了一些方法,感觉太复杂,于是根据自己的想法实现了这个功能,先用着,方法可能有点笨,不过还是实现了想要的效果。以下是实现方法:
新建一个窗口,设置窗体的各项属性shwoInTaskbar为false,maximizebox为false,minimizebox为false等
放置两个timer控件分别对两个timer控件写事件如下:
//timer1用于实现渐显效果
之后在窗体的load事件里写:
新建一个窗口,设置窗体的各项属性shwoInTaskbar为false,maximizebox为false,minimizebox为false等
放置两个timer控件分别对两个timer控件写事件如下:
//timer1用于实现渐显效果
private void timer1_Tick(object sender, EventArgs e) { if (this.Opacity == 1) //如果窗体透明度为100%停止记时 { this.timer1.Stop(); } else //否则窗体透明度加0.05,直到为1 { this.Opacity = this.Opacity + 0.05; } } //timer2用于关闭时出现渐隐效果 private void timer2_Tick(object sender, EventArgs e) { if (this.Opacity == 0) { this.timer1.Stop(); this.timer2.Stop(); this.Close(); } else { this.Opacity = this.Opacity - 0.1; } }
之后在窗体的load事件里写:
int Heightone = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height; //获取屏幕的高度 int Heighttwo = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height; //获取工作区的高度 int screenX = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width; //获取屏幕的宽度 int renwu = Heightone - Heighttwo; //屏幕的高度减去工作区的高度,得到任务栏的高度,只所以获取任务栏的高度,是由于一些时候任务栏的高度不固定。避免窗体被任务栏遮挡住 this.Top = Heightone - 160-renwu; //距离上边的距离=屏幕的高度-窗体的高度-任务栏的高度 this.Left = screenX - 290; //距离左边的距离=屏幕的宽度-窗体的宽度 this.Opacity = 0; //设置窗体的不透明度为0 this.timer1.Start(); //启动记时器
相关文章推荐
- C#.NET 实现右下角弹出窗口
- VS C# .NET WebBrowser控件 利用插入JS代码,实现控制弹出IE窗口
- 实现从弹出窗口中选择值 (asp.net C#)
- C#.NET 实现右下角弹出窗口
- C#.NET 实现右下角弹出窗口
- asp.net中弹出确认窗口(confirm),实现删除确认的功能
- asp.net 2.0 ajax中实现弹出窗口报警提示
- asp.net中弹出确认窗口(confirm),实现删除确认的功能
- ASP.NET实现自适应图片大小的弹出窗口
- 在ASP.NET中,如何实现点击按钮弹出新窗口.刷新父窗口
- C# .NET弹出窗口 汇总(精华,麒麟创想)
- ASP.NET实现自适应图片大小的弹出窗口
- ASP.NET实现自适应图片大小的弹出窗口[转]
- Asp.Net中用javascript实现弹出窗口永远居中
- asp.net中弹出确认窗口(confirm),实现删除确认的功能
- ASP.NET(C#)AJAX+JAVASCRIPT实现类似QQ,MSN窗口之功能(续)
- C# 实现优酷视频弹出小窗口播放
- C# .NET弹出窗口 汇总(精华,麒麟创想)
- asp.net 2.0 ajax中实现弹出窗口报警提示
- Asp.Net中用javascript实现弹出窗口永远居中