C#实现WinForm窗体逐渐显示效果,这个博客园里面已经有其它人已经实现了,原理很简单,就是通过定时改变窗体的透明度(从0到1,即透明度从完全透明到不透明),我这里也是按照这个思路来实现的,但是我做的这个窗体是可复用的,即其它窗体继承自它后,就能实现渐显效果,代码如下:
using System; using System.ComponentModel; using System.Windows.Forms; namespace TEMS.Forms { public partial class FormBase : Form { private Timer formTimer = null; /// <summary> /// 获取Opacity属性 /// </summary> [DefaultValue(0)] [Browsable(false)] public new double Opacity { get { return base.Opacity; } set { base.Opacity = 0; } } public FormBase() { InitializeComponent(); formTimer = new Timer() { Interval = 100 }; formTimer.Tick += new EventHandler(formTimer_Tick); base.Opacity = 0; } private void formTimer_Tick(object sender, EventArgs e) { if (this.Opacity >= 1) { formTimer.Stop(); } else { base.Opacity += 0.2; } } private void FormBase_Shown(object sender, EventArgs e) { formTimer.Start(); } } } |