代码改变世界

一个CSharp类代码,让你的窗体显示的更酷(转)

2007-10-31 17:23  码农.KEN  阅读(1575)  评论(1编辑  收藏  举报

就是这个类,继承它吧!让你的窗体有打开和关闭的时候淡入淡出。很酷的Style,是不是有点像Windows Vista。(注意:继承类窗体初始化属性Opacity=0)

    public class OpacityShowStyleForm:System.Windows.Forms.Form
    {
        System.Single step = 0.05f;
        public System.Single Step
        {
            get { return step; }
            set { if (value > 0 && value<=1)step = value; }
        }

        System.Int32 millisecondstimeout = 30;
        public System.Int32 MillsSecondstimeout
        {
            get { return millisecondstimeout; }
            set { if (value > 0)millisecondstimeout = value; }
        }
        System.Boolean EnableStyle;
        protected override void OnShown(EventArgs e)
        {
            base.OnShown(e);

EnableStyle = (Opacity < 1);
            System.Windows.Forms.Application.DoEvents();
            try
            {
                while (Opacity < 1)
                {
                    try
                    {
                        Opacity += Step;
                    }
                    catch { }
                    System.Threading.Thread.Sleep(MillsSecondstimeout);
                }
            }
            catch { }
            finally { Opacity = 1; }
        }

        protected override void OnFormClosing(System.Windows.Forms.FormClosingEventArgs e)
        {
            base.OnFormClosing(e);
            if (!EnableStyle) return;
            try
            {
                //System.Windows.Forms.Application.DoEvents();
                while (Opacity > 0)
          {
                    try
                    {
                        Opacity -= Step;
                    }
                    catch { }
                    System.Threading.Thread.Sleep(MillsSecondstimeout);
                }
            }
            catch { }
            finally { Opacity = 0; }
        }
    }