’起始宽度
Dim halfBorder As Single = CSng(BorderWidth / 2)
Dim idxColor As Integer = 0
Dim x As Single
’每个画笔填充颜色占用的宽度
height = CSng(Me.ClientRectangle.Height - BorderWidth)
’根据当前百分比所占用的宽度使用画笔填充颜色
For x = halfBorder To totalWidth Step barWidth
e.Graphics.FillRectangle(lstBrushes(idxColor), x, halfBorder, barWidth, height)
If idxColor < lstBrushes.Count Then
idxColor += 1
End If
Next
’当进度为100%的,使用最后一个画笔填充颜色.
If (x < (Me.ClientRectangle.Width - halfBorder)) And percentComplete = 1.0 Then
If idxColor < lstBrushes.Count Then
e.Graphics.FillRectangle(lstBrushes(idxColor), x, halfBorder, ((Me.ClientRectangle.Width - halfBorder) - x), height)
End If
End If
End Sub
End Class
保存项目后,按下“生成”菜单中的“生成 GradientProcessBar”选项,生成了组件GradientProcessBar.dll。
四、测试组件 点击“文件”下的“新建项目”,在打开的窗体中,“项目类型”选择“Visual Basic”。“模板”选择“Windows 应用程序”。在左下角,“名称”改为“Test”。按下“确定”按钮,新建工程。在打开的窗体Form1.vb中,加入一个Button控件,设置属性Text=启动。一个Label控件,设置属性Text=当前进度。一个Timer控件。点击“工具”菜单下的“选择工具箱项”。点击 “.NET Framework 组件”页。点击“浏览”按钮。选择刚才生成的榧礼radientProcessBar.dll加入到窗体中。如下图示:
http://img.ddvip.com/2009_02_27/1235741535_ddvip_7994.jpeg
点击 “确定”按钮。则在工具箱中有了GradientProcessBar 控件了。在窗体上加入一个
GradientProcessBar控件。设置属性Name=Pb1。在Form1.vb中添加如下代码:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
’设置进度条初始值
Pb1.Minimum = 0
Pb1.Maximum = 100
Pb1.Value = 0
Pb1.Smoothness = 4
’启动进度条
Timer1.Interval = 10
Timer1.Enabled = True
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
’显示当前进度。
Pb1.Value += 1
Label1.Text = "当前进度:" + CStr(CInt(Pb1.Value / Pb1.Maximum * 100)) + "%"
End Sub
End Class
按F5键运行程序,显示如下窗体:
按下“启动”按钮,显示当前进度,如下图所示:
进度条显示完后,如下图所示:
结束语
本文对基于VB2005的组件编程技术作了初步的介绍,关于这方面的技术。有兴趣的读者可以参考相关的资料,为以后能开发出更多更好的组件打下一定的基础。
2009年上半年全国计算机等级考试参考答案请进入计算机考试论坛
2009年上半年全国计算机等级考试报名信息汇总
2009年NCRE考试有新变化
2009年全国计算机等级考试大纲
2009年上半年全国计算机二级考试试题及答案
2009年上半年全国计算机等级考试试题答案汇总