C#实现winform渐变效果的方法

 更新时间:2014年10月16日 10:43:32   投稿:shichen2014  
这篇文章主要介绍了C#实现winform渐变效果的方法,涉及到窗体的设计与属性的修改等技巧,需要的朋友可以参考下

本文实例实现一个启动画面,采用了显示Aform,过一段时间,隐藏这个Aform,showdialog下一个Bform,closeAForm这个方法来做了,不知道大家有没有更好的办法。
设定程序从Aform启动:

复制代码 代码如下:
static void Main() 

  Application.EnableVisualStyles(); 
  Application.SetCompatibleTextRenderingDefault(false); 
  Application.Run(new Aform()); 
}

AForm中定义如下timer:

StartWindowShowTime    HideWindowStart    HideWindowSpeed   ShowWindowStart

定义了他们的属性:

StartWindowShowTime(显示Aform的时间长度) Enabled=True Interval=5000 (100=1秒)
HideWindowStart (开始隐藏Aform的过程) Enabled=True Interval=4500
HideWindowSpeed (隐藏Aform的渐变间隔) Enabled=False Interval=10
ShowWindowStart  (显示AForm的渐变间隔) Enabled=True Interval=10

下面开始定义这些timer的Tick 在Events里面可以直接填写,timer就这一个,也可以后台写,不过我觉得在这里填写比较方便,而且可以自动生成方法的声明,不用找了。偷懒一下。

StartWindowShowTime Tick:ShowMainwindow
HideWindowStart  Tick:HideWindow
HideWindowSpeed  Tick:HideWindowSpeedStart
ShowWindowStart Tick:ShowWindow

好了,到这里我要说Windows Form 实现透明效果,渐变效果,淡入淡出效果的实现最重要一员了,那就是Form属性里的Opacity,用的就是这个。我考证过,只有2000以上的系统支持这个属性。

我们先将Aform的Opacity设置成0,好了开始写Aform的代码

复制代码 代码如下:
public partial class Aform: Form 

       public Form() 
       { 
           InitializeComponent();  
       } 
 
       private void Start_Load(object sender, EventArgs e) 
       { 
           StartWindowShowTime.Start(); 
           HideWindowStart.Start(); 
       } 
 
       private void ShowMainwindow(object sender, EventArgs e) 
       { 
           Bform showmainwindows = new Bform();             
           this.Hide(); 
           StartWindowShowTime.Stop(); 
           HideWindowStart.Stop(); 
           HideWindowSpeed.Stop(); 
           showmainwindows.ShowDialog(); 
           this.Close(); 
       } 
 
       private void HideWindow(object sender, EventArgs e) 
       { 
           HideWindowSpeed.Start(); 
       } 
 
       private void HideWindowSpeedStart(object sender, EventArgs e) 
       { 
           this.Opacity = this.Opacity - 0.02; 
       } 
 
       private void ShowWindow(object sender, EventArgs e) 
       { 
           if (this.Opacity == 1) 
           { 
               ShowWindowStart.Stop(); 
           } 
           else 
           { 
               this.Opacity = this.Opacity + 0.02; 
           } 
       } 
}

好了,这个时候大家运行看看,可以看到有淡入淡出效果。
我本来把Opacity每次更改的数值设置成了0.1,可是发现如果那样的话淡入淡出不是很润,所以缩小了数值和间隔时间。这样看起来就润多了。自我感觉不错。
如果大家的程序只需要透明,那么只用设置Opacity这个就可以了。

渐变和淡入淡出照猫画虎用timer和Opacity这个配合一下,就可以做出来了。

希望本文所述对大家的C#程序设计有所帮助

相关文章

  • 在C#程序中对MessageBox进行定位的方法

    在C#程序中对MessageBox进行定位的方法

    这篇文章主要介绍了在C#程序中对MessageBox进行定位的方法,针对图形化界面进行调试,需要的朋友可以参考下
    2015-07-07
  • c#中oracle的to_date函数使用方法

    c#中oracle的to_date函数使用方法

    C#使用参数传值方式操作oracle的date字段,主要介绍了oracle的to_date使用方法,大家参考使用吧
    2014-01-01
  • C#编写DES加密、解密类

    C#编写DES加密、解密类

    本文给大家汇总了一下使用C#实现的DES加密、解密类的代码,十分的简单实用,有需要的小伙伴可以参考下
    2015-05-05
  • C#数据结构之双向链表(DbLinkList)实例详解

    C#数据结构之双向链表(DbLinkList)实例详解

    这篇文章主要介绍了C#数据结构之双向链表(DbLinkList),结合实例形式较为详细的讲解了双向链表的概念及C#实现双向链表的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • c# 通过内存映射实现文件共享内存的示例代码

    c# 通过内存映射实现文件共享内存的示例代码

    这篇文章主要介绍了c# 通过内存映射实现文件共享内存的示例代码,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-04-04
  • 基于C# 写一个 Redis 数据同步小工具

    基于C# 写一个 Redis 数据同步小工具

    Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这篇文章主要介绍了用 C# 写一个 Redis 数据同步小工具,需要的朋友可以参考下
    2020-02-02
  • Visual Studio连接unity编辑器的实现步骤

    Visual Studio连接unity编辑器的实现步骤

    unity编辑器中打开C#脚本的时候发现Visual Studio没有连接unity编辑器,本文主要介绍了Visual Studio连接unity编辑器的实现步骤,感兴趣的可以了解一下
    2023-11-11
  • WinForm绘制圆角的方法

    WinForm绘制圆角的方法

    这篇文章主要介绍了WinForm绘制圆角的方法,涉及C#中GraphicsPath模块的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • C#操作Access数据库的实现过程(vs2019)

    C#操作Access数据库的实现过程(vs2019)

    这篇文章主要介绍了C#操作Access数据库的实现过程(vs2019),打开Office Access新建一个空白数据库DATA.accdb,并改好存放位置,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-02-02
  • C#中的一些延时函数

    C#中的一些延时函数

    这篇文章主要介绍了C#中的一些延时函数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06

最新评论