玩控件的继承( 一个很有意思的气球小程序 )DotNetBar
首先给大家介绍一个很不错的控件
DotNetBar,它包含很多漂亮的控件,功能也委实强大
适用于WinForm编程,我这有一个破解版的(点击下载)
右边是安装完成后我的。NET工具箱中出现的相关控件![](/images/cnblogs_com/jht/{75566A0E-B5F1-42C8-895F-D391429F57E7}0.jpg)
这里我要说的小程序玩继承
第一步:新建一个WinForm工程,相信这是很简单的啦
第二步:把自动生成的窗体删除
第三步:添加DevComponents.DotNetBar的dll引用
第四步:添加继承的窗体(自定义你窗体的名称),
选择要继承的组件为Ballon如下图所示![](/images/cnblogs_com/jht/{DE09DDA7-C0ED-409D-AE82-5EB3D95512B6}0.jpg)
第五步:初始化你的窗体
要说明的是:你的窗体继承自Ballon所有具有了Ballon的属性,哈哈,是不是很好玩呢?
那就意味着,你的窗体可以像Ballon那样完成提醒的功能,而且提醒完之后,生命自动终止
还有很多更神奇的功能先不说,我们先来吧这个程序完成吧……
它是支持可视化效果的,你的任何修改马上可以在Form里看到,你当然也可以像编其他任何
WinForm程序一样,往窗体里拖你的控件,就和操作其他窗体一样。
你想让它干什么,就在给它编什么样的代码,提醒你的日程安排、纪念日等等
这里我做的是让它提醒我和女朋友在一起的日子多少天
代码和简单注释如下:
哈哈,是不是很好玩呢?
.DotNetBar是个很爽的东西,推荐给大家……
DotNetBar,它包含很多漂亮的控件,功能也委实强大
适用于WinForm编程,我这有一个破解版的(点击下载)
右边是安装完成后我的。NET工具箱中出现的相关控件
![](/images/cnblogs_com/jht/{75566A0E-B5F1-42C8-895F-D391429F57E7}0.jpg)
这里我要说的小程序玩继承
第一步:新建一个WinForm工程,相信这是很简单的啦
第二步:把自动生成的窗体删除
第三步:添加DevComponents.DotNetBar的dll引用
第四步:添加继承的窗体(自定义你窗体的名称),
选择要继承的组件为Ballon如下图所示
![](/images/cnblogs_com/jht/{DE09DDA7-C0ED-409D-AE82-5EB3D95512B6}0.jpg)
第五步:初始化你的窗体
要说明的是:你的窗体继承自Ballon所有具有了Ballon的属性,哈哈,是不是很好玩呢?
那就意味着,你的窗体可以像Ballon那样完成提醒的功能,而且提醒完之后,生命自动终止
还有很多更神奇的功能先不说,我们先来吧这个程序完成吧……
它是支持可视化效果的,你的任何修改马上可以在Form里看到,你当然也可以像编其他任何
WinForm程序一样,往窗体里拖你的控件,就和操作其他窗体一样。
你想让它干什么,就在给它编什么样的代码,提醒你的日程安排、纪念日等等
这里我做的是让它提醒我和女朋友在一起的日子多少天
代码和简单注释如下:
1
using System;
2
using System.Collections;
3
using System.ComponentModel;
4
using System.Drawing;
5
using System.Windows.Forms;
6
using DevComponents.DotNetBar;
7![](/Images/OutliningIndicators/None.gif)
8
namespace EveryDayNotice
9
{
10
public class EveryDayNotice : DevComponents.DotNetBar.Balloon
11
{
12
private System.Windows.Forms.Label label1;
13
private System.Windows.Forms.Timer timer1;
14
private System.ComponentModel.IContainer components = null;
15![](/Images/OutliningIndicators/InBlock.gif)
16
public EveryDayNotice()
17
{
18
// 该调用是 Windows 窗体设计器所必需的。
19
InitializeComponent();
20
}
21![](/Images/OutliningIndicators/InBlock.gif)
22
23
protected override void Dispose( bool disposing )
24
{
25
if( disposing )
26
{
27
if (components != null)
28
{
29
components.Dispose();
30
}
31
}
32
base.Dispose( disposing );
33
}
34![](/Images/OutliningIndicators/InBlock.gif)
35
[STAThread]
36
static void Main()
37
{
38
Application.Run(new EveryDayNotice());
39
}
40![](/Images/OutliningIndicators/InBlock.gif)
41
//我的获取提醒时间的简单函数
42
public int GetDayNotice()
43
{
44
DateTime date1 = Convert.ToDateTime(Convert.ToDateTime("2005-4-6"));
45
DateTime date2 = DateTime.Now.Date;
46![](/Images/OutliningIndicators/InBlock.gif)
47
System.TimeSpan diff1 = date1.Subtract(Convert.ToDateTime("2005-6-25"));
48
System.TimeSpan diff2 = date2.Subtract(Convert.ToDateTime("2005-6-25"));
49
System.TimeSpan diff3 = diff2 - diff1;
50
return diff3.Days;
51
}
52![](/Images/OutliningIndicators/InBlock.gif)
53
#region 设计器生成的代码
54
/// <summary>
55
/// 设计器支持所需的方法 - 说明:根据你拖的控件,修改的属性自动生成
56
/// </summary>
57
private void InitializeComponent()
58
{
59
this.components = new System.ComponentModel.Container();
60
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(EveryDayNotice));
61
this.label1 = new System.Windows.Forms.Label();
62
this.timer1 = new System.Windows.Forms.Timer(this.components);
63
this.SuspendLayout();
64
//
65
// label1
66
//
67
this.label1.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
68
this.label1.ForeColor = System.Drawing.Color.Red;
69
this.label1.Location = new System.Drawing.Point(48, 72);
70
this.label1.Name = "label1";
71
this.label1.Size = new System.Drawing.Size(240, 48);
72
this.label1.TabIndex = 0;
73
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
74
//
75
// timer1
76
//
77
this.timer1.Enabled = true;
78
this.timer1.Interval = 1000;
79
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
80
//
81
// EveryDayNotice
82
//
83
this.AlertAnimationDuration = 100;
84
this.AutoScaleBaseSize = new System.Drawing.Size(7, 14);
85
this.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(207)), ((System.Byte)(221)), ((System.Byte)(244)));
86
this.BackColor2 = System.Drawing.Color.White;
87
this.CaptionColor = System.Drawing.Color.Red;
88
this.CaptionFont = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold);
89
this.CaptionImage = ((System.Drawing.Image)(resources.GetObject("$this.CaptionImage")));
90
this.CaptionText = "I love you for ever";
91
this.ClientSize = new System.Drawing.Size(355, 152);
92
this.CloseButtonHot = ((System.Drawing.Image)(resources.GetObject("$this.CloseButtonHot")));
93
this.CloseButtonNormal = ((System.Drawing.Image)(resources.GetObject("$this.CloseButtonNormal")));
94
this.CloseButtonPressed = ((System.Drawing.Image)(resources.GetObject("$this.CloseButtonPressed")));
95
this.Controls.Add(this.label1);
96
this.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
97
this.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(102)), ((System.Byte)(114)), ((System.Byte)(196)));
98
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
99
this.Location = new System.Drawing.Point(1024, 768);
100
this.Name = "EveryDayNotice";
101
this.Opacity = 0.8;
102
this.Style = DevComponents.DotNetBar.eBallonStyle.Alert;
103
this.ResumeLayout(false);
104![](/Images/OutliningIndicators/InBlock.gif)
105
}
106
#endregion
107![](/Images/OutliningIndicators/InBlock.gif)
108![](/Images/OutliningIndicators/InBlock.gif)
109
//弹出提箱气球的函数
110
public void Myshow()
111
{
112
label1.Text = "今天是我们在一起第 "+GetDayNotice()+" 天";
113
Rectangle r=Screen.GetWorkingArea(this);
114
//设置出现位置
115
this.Location=new Point(r.Right-this.Width,r.Bottom-this.Height);
116
//必须的,自动Dispose
117
this.AutoClose=true;
118
//自动消失的时间
119
this.AutoCloseTimeOut=5;
120
//弹出动画,这里是从底往上
121
this.AlertAnimation=eAlertAnimation.BottomToTop;
122
//动画时间
123
this.AlertAnimationDuration=300;
124
this.Show(false);
125
}
126![](/Images/OutliningIndicators/InBlock.gif)
127
//注:Timeer控件让它在一定时间期之后发生一次Show()
128
private void timer1_Tick(object sender, System.EventArgs e)
129
{
130
timer1.Stop();
131
timer1.Enabled=false;
132
Myshow();
133
}
134
}
135
}
136![](/Images/OutliningIndicators/None.gif)
137![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
31
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
40
![](/Images/OutliningIndicators/InBlock.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
44
![](/Images/OutliningIndicators/InBlock.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/InBlock.gif)
47
![](/Images/OutliningIndicators/InBlock.gif)
48
![](/Images/OutliningIndicators/InBlock.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/InBlock.gif)
51
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
52
![](/Images/OutliningIndicators/InBlock.gif)
53
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
54
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
55
![](/Images/OutliningIndicators/InBlock.gif)
56
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
57
![](/Images/OutliningIndicators/InBlock.gif)
58
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
59
![](/Images/OutliningIndicators/InBlock.gif)
60
![](/Images/OutliningIndicators/InBlock.gif)
61
![](/Images/OutliningIndicators/InBlock.gif)
62
![](/Images/OutliningIndicators/InBlock.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/InBlock.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/InBlock.gif)
68
![](/Images/OutliningIndicators/InBlock.gif)
69
![](/Images/OutliningIndicators/InBlock.gif)
70
![](/Images/OutliningIndicators/InBlock.gif)
71
![](/Images/OutliningIndicators/InBlock.gif)
72
![](/Images/OutliningIndicators/InBlock.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/InBlock.gif)
75
![](/Images/OutliningIndicators/InBlock.gif)
76
![](/Images/OutliningIndicators/InBlock.gif)
77
![](/Images/OutliningIndicators/InBlock.gif)
78
![](/Images/OutliningIndicators/InBlock.gif)
79
![](/Images/OutliningIndicators/InBlock.gif)
80
![](/Images/OutliningIndicators/InBlock.gif)
81
![](/Images/OutliningIndicators/InBlock.gif)
82
![](/Images/OutliningIndicators/InBlock.gif)
83
![](/Images/OutliningIndicators/InBlock.gif)
84
![](/Images/OutliningIndicators/InBlock.gif)
85
![](/Images/OutliningIndicators/InBlock.gif)
86
![](/Images/OutliningIndicators/InBlock.gif)
87
![](/Images/OutliningIndicators/InBlock.gif)
88
![](/Images/OutliningIndicators/InBlock.gif)
89
![](/Images/OutliningIndicators/InBlock.gif)
90
![](/Images/OutliningIndicators/InBlock.gif)
91
![](/Images/OutliningIndicators/InBlock.gif)
92
![](/Images/OutliningIndicators/InBlock.gif)
93
![](/Images/OutliningIndicators/InBlock.gif)
94
![](/Images/OutliningIndicators/InBlock.gif)
95
![](/Images/OutliningIndicators/InBlock.gif)
96
![](/Images/OutliningIndicators/InBlock.gif)
97
![](/Images/OutliningIndicators/InBlock.gif)
98
![](/Images/OutliningIndicators/InBlock.gif)
99
![](/Images/OutliningIndicators/InBlock.gif)
100
![](/Images/OutliningIndicators/InBlock.gif)
101
![](/Images/OutliningIndicators/InBlock.gif)
102
![](/Images/OutliningIndicators/InBlock.gif)
103
![](/Images/OutliningIndicators/InBlock.gif)
104
![](/Images/OutliningIndicators/InBlock.gif)
105
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
106
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
107
![](/Images/OutliningIndicators/InBlock.gif)
108
![](/Images/OutliningIndicators/InBlock.gif)
109
![](/Images/OutliningIndicators/InBlock.gif)
110
![](/Images/OutliningIndicators/InBlock.gif)
111
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
112
![](/Images/OutliningIndicators/InBlock.gif)
113
![](/Images/OutliningIndicators/InBlock.gif)
114
![](/Images/OutliningIndicators/InBlock.gif)
115
![](/Images/OutliningIndicators/InBlock.gif)
116
![](/Images/OutliningIndicators/InBlock.gif)
117
![](/Images/OutliningIndicators/InBlock.gif)
118
![](/Images/OutliningIndicators/InBlock.gif)
119
![](/Images/OutliningIndicators/InBlock.gif)
120
![](/Images/OutliningIndicators/InBlock.gif)
121
![](/Images/OutliningIndicators/InBlock.gif)
122
![](/Images/OutliningIndicators/InBlock.gif)
123
![](/Images/OutliningIndicators/InBlock.gif)
124
![](/Images/OutliningIndicators/InBlock.gif)
125
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
126
![](/Images/OutliningIndicators/InBlock.gif)
127
![](/Images/OutliningIndicators/InBlock.gif)
128
![](/Images/OutliningIndicators/InBlock.gif)
129
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
130
![](/Images/OutliningIndicators/InBlock.gif)
131
![](/Images/OutliningIndicators/InBlock.gif)
132
![](/Images/OutliningIndicators/InBlock.gif)
133
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
134
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
135
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
136
![](/Images/OutliningIndicators/None.gif)
137
![](/Images/OutliningIndicators/None.gif)
哈哈,是不是很好玩呢?
.DotNetBar是个很爽的东西,推荐给大家……