首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

求WinForm中的特殊窗体效果源代码,该怎么解决

2011-12-29 
求WinForm中的特殊窗体效果源代码在WinForm中偶尔会遇到某些特殊效果:比如某个窗口刚开始的时候是完全透明

求WinForm中的特殊窗体效果源代码
在WinForm中偶尔会遇到某些特殊效果:比如某个窗口刚开始的时候是完全透明的,随着时间的变化,窗体逐渐不透明,直至完全...

[解决办法]
在vista中可以.XP中需要API
[解决办法]
定义一个全局变量,int i=0;
弄一个Timer,Timer的tick事件里面写上this.opacity=i++;
然后加一句判断 if(i>100) timer.enable=false;
这样就可以慢慢变到饱和啦
[解决办法]
前段时间有人问过这个问题!!
[解决办法]
在Form上放一个时间控件,处理代码如下:

C# code
private void Form1_Load(object sender, EventArgs e)        {            this.Opacity = 0;            this.timer1.Interval = 100;            this.timer1.Start();        }        private void timer1_Tick(object sender, EventArgs e)//时间间隔事件        {            if (this.Opacity < 100)            {                this.Opacity += 0.05;            }            else            {                this.timer1.Stop();            }        }
[解决办法]
探讨
定义一个全局变量,int i=0;
弄一个Timer,Timer的tick事件里面写上this.opacity=i++;
然后加一句判断 if(i>100) timer.enable=false;
这样就可以慢慢变到饱和啦

[解决办法]
C# code
实现一个窗体,在弹出时要慢慢从透明到不透明的特效        private double opacityIncrement = 0.1;        private const int changeInterval = 25;        private Timer timer1;        //表单载入        private void Form1_Load(object sender, System.EventArgs e)        {            timer1=new Timer();            timer1.Interval=changeInterval;            timer1.Tick+=new System.EventHandler(this.timer1_Tick);            this.Opacity=0;            timer1.Start();        }        //渐显事件        private void timer1_Tick(object sender, System.EventArgs e)        {             this.timer1.Stop();            if(this.Opacity<1)            {                this.Opacity=this.Opacity+this.changeInterval;            }            else            {                this.timer1.Enabled=false;            }               this.timer1.Start();        }
[解决办法]
用timer控件可以实现 代码可以参考楼上的
[解决办法]
7楼正解
[解决办法]
借楼主的贴子提问:
不用timer如何实现呢?~直接定义一个线程该怎么弄呢``
[解决办法]
http://www.skinfeature.com
[解决办法]
我试过,这样会导致窗体运行速度变慢。
还有,假如你使用皮肤控件,那么会很麻烦的……
为了这么一点小小美观,而牺牲运行速度,不值!
[解决办法]
探讨
引用:
定义一个全局变量,int i=0;
弄一个Timer,Timer的tick事件里面写上this.opacity=i++;
然后加一句判断 if(i>100) timer.enable=false;
这样就可以慢慢变到饱和啦



[解决办法]
调整Opacity 就可以了
[解决办法]
有个API,AnimateWindow。
BOOL AnimateWindow( HWND hwnd,
DWORD dwTime,
DWORD dwFlags
);
dwFlags可以用这个参数,AW_BLEND:Uses a fade effect. This flag can be used only if hwnd is a top-level window. 

[解决办法]
Opacity
timer

[解决办法]
小程序弄着玩还行,实用程序的话——省省吧!

热点排行