VB编写一个能显示百分比的自定义进度条控件
点击次数:63 次 发布日期:2008-11-06 08:06:30 作者:源代码网
|
源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐设计方法: 源代码网推荐 源代码网推荐1.在UserControl中添加一个Label控件Label1,将它设为平面,用来做外框。添加两个PictureBox控件PictureBox1做为进度指示,PictureBox2控件做为控件背景。 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐2.加入以下代码 源代码网推荐 源代码网推荐Option Explicit 源代码网推荐 源代码网推荐"定义私有变量用于存储属性值 源代码网推荐Private mvarMax As Long 源代码网推荐Private mvarMin As Long 源代码网推荐Private mvarValue As Long 源代码网推荐 源代码网推荐Private Rate As String 源代码网推荐 源代码网推荐Private Sub UserControl_Initialize() 源代码网推荐"初始化 源代码网推荐 Picture2.BackColor = vbBlue 源代码网推荐End Sub 源代码网推荐 源代码网推荐Public Property Get BackColor() As OLE_COLOR 源代码网推荐"读取BackColor属性 源代码网推荐 BackColor = Picture1.BackColor 源代码网推荐End Property 源代码网推荐 源代码网推荐Public Property Let BackColor(ByVal vNewValue As OLE_COLOR) 源代码网推荐"设置BackColor属性 源代码网推荐 Picture1.BackColor = vNewValue 源代码网推荐End Property 源代码网推荐 源代码网推荐Private Sub UserControl_InitProperties() 源代码网推荐"初始化属性 源代码网推荐 Max = 100 源代码网推荐 Min = 0 源代码网推荐 Value = 0 源代码网推荐End Sub 源代码网推荐 源代码网推荐Private Sub UserControl_ReadProperties(PropBag As PropertyBag) 源代码网推荐"读取从属性窗体中设置的属性值 源代码网推荐 mvarMax = PropBag.ReadProperty("Max", 100) 源代码网推荐 mvarMin = PropBag.ReadProperty("Min", 0) 源代码网推荐 "Value属性值这里未提供,主要是模仿VB自带的进度条控件 源代码网推荐 "mvarValue = PropBag.ReadProperty("Value", 0) 源代码网推荐End Sub 源代码网推荐 源代码网推荐Private Sub UserControl_WriteProperties(PropBag As PropertyBag) 源代码网推荐"保存从属性窗体中设置的属性值 源代码网推荐 PropBag.WriteProperty "Max", mvarMax, 100 源代码网推荐 PropBag.WriteProperty "Min", mvarMin, 0 源代码网推荐 "PropBag.WriteProperty "Value", mvarValue, 0 源代码网推荐End Sub 源代码网推荐 源代码网推荐Private Sub UserControl_Resize() 源代码网推荐"Resize事件 源代码网推荐 Label1.Move 0, 0, UserControl.Width / Screen.TwipsPerPixelX, UserControl.Height / Screen.TwipsPerPixelY 源代码网推荐 Picture1.Move 1, 1, UserControl.Width / Screen.TwipsPerPixelX - 2, UserControl.Height / Screen.TwipsPerPixelY - 2 源代码网推荐 Picture2.Move 1, 1, 1, UserControl.Height / Screen.TwipsPerPixelY - 2 源代码网推荐End Sub 源代码网推荐 源代码网推荐Public Property Get Max() As Long 源代码网推荐"读取Max属性 源代码网推荐 Max = mvarMax 源代码网推荐End Property 源代码网推荐 源代码网推荐Public Property Let Max(ByVal vNewValue As Long) 源代码网推荐"设置Max属性 源代码网推荐 mvarMax = vNewValue 源代码网推荐 If vNewValue < Min Then Err.Raise "1001", , "Max必须大于Min" 源代码网推荐End Property 源代码网推荐 源代码网推荐Public Property Get Min() As Long 源代码网推荐"读取Min属性 源代码网推荐 Min = mvarMin 源代码网推荐End Property 源代码网推荐 源代码网推荐Public Property Let Min(ByVal vNewValue As Long) 源代码网推荐"设置Min属性 源代码网推荐 If vNewValue > Max Then Err.Raise "1000", , "Min必须小于Max" 源代码网推荐 mvarMin = vNewValue 源代码网推荐End Property 源代码网推荐 源代码网推荐Public Property Get Value() As Long 源代码网推荐"读取Value属性 源代码网推荐 Value = mvarValue 源代码网推荐End Property 源代码网推荐 源代码网推荐Public Property Let Value(ByVal vNewValue As Long) 源代码网推荐"设置Value属性 源代码网推荐"原理就是在两个PictureBox中以不同颜色打印百分比进度 源代码网推荐Dim DX As Long, DY As Long 源代码网推荐 源代码网推荐 源代码网供稿. |
