winform 标注式弹出窗口

1,思路,在桌面的右上角弹出不规则桌面的窗体。

关于绘制不规则窗体,可以考虑使用form的属性。比如:backgroundImage属性和transparencykey来设置图片的某种颜色为透明色。

 主要功能是窗体慢慢地从桌面的右下角弹出。弹出完后停留5分钟。再慢慢地滚动下去了。

如图。

 

 具体实现原理,请看打包。

 标注式弹出窗口

 

还有一种方法,模拟腾讯的,弹出式窗口淡出,停了5秒钟之后,就慢慢淡入了。

实现方法:可以动态的控制opacity 这个属性。具体方法的实现如下。

 在form2(弹出窗口)中。的代码如下。

 

ExpandedBlockStart.gif View Code
 1          private   double  intOpacity ;
 2           public   double  IntOpacity
 3          {
 4               get
 5              {
 6                   return  intOpacity;
 7              }
 8               set
 9              {
10                  intOpacity  =  value;
11              }
12          }
13 
14 
15 
16    // 以下是操作弹出式窗口的效果
17           public   void  FadeShow()
18          {
19               this .Opacity  =   0 ;
20               this .Show();
21               this .timer4.Enabled  =   true ;
22          }
23           ///   <summary>
24           ///  淡出
25           ///   </summary>
26           private   void  FadeOut()
27          {
28               try
29              {
30                   if  ( this .Opacity  <  IntOpacity)
31                  {
32                       this .Opacity  +=   0.1 ;
33                  }
34                   else
35                  {
36                      timer4.Enabled  =   false ;
37                      timer5.Enabled  =   true ;
38                  }
39              }
40               catch  (Exception ex)
41              {
42                  MessageBox.Show(ex.Message);
43              }
44          }
45 
46           private   void  FadeIn()
47          {
48               if  ( this .Opacity  >   0 )
49              {
50                   this .Opacity  -=   0.1 ;
51              }
52               else
53              {
54                  timer6.Enabled  =   false ;
55                   this .Close();
56                  
57 
58              }
59          }
60           private   void  timer4_Tick( object  sender, EventArgs e)
61          {
62              FadeOut();
63          }
64 
65           private   void  timer5_Tick( object  sender, EventArgs e)
66          {
67              timer5.Enabled  =   false ;
68              timer6.Enabled  =   true ;
69          }
70 
71           private   void  timer6_Tick( object  sender, EventArgs e)
72          {
73              FadeIn();
74          }

 

 注意:代码:

  private void FadeOut()
        {
            try
            {
                if (this.Opacity < IntOpacity)
                {
                    this.Opacity += 0.1;
                }
                else
                {
                    timer4.Enabled = false;
                    timer5.Enabled = true;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

 

if (this.Opacity < IntOpacity)其中左边的代码不能写成
if (this.Opacity <= IntOpacity)因为intopacity的值为1,如果是《=号的话,那么,else将不会被执行到。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值