自己编写vb进度条控件

简介: 自己编写vb进度条控件

image.png

主程序代码:

Option Explicit
Dim i As Double
Private Sub Command1_Click()
    i = 0
    Timer1.Interval = 50
    Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
    i = i + 0.05
    ProcessBar1.Percent = i
    If i > 1 Then Timer1.Enabled = False
End Sub

image.png

控件代码:

Option Explicit
Public Enum FigureStyle
    eOnlyValueInt
    eOnlyValueDouble
    ePercentInt
    ePercentDouble
End Enum
Private dblMyPercent As Double
Private lngMyValue As Long
Private isShowMsg As Boolean
Private strMsg As String
Private intMsgStyle As FigureStyle
Private Max As Long, Min As Long
Private Sub UserControl_Initialize()
    Min = 0
    Max = 100
'    lngMyValue = 30
    dblMyPercent = lngMyValue / (Max - Min)
    lblValue.Caption = Int(dblMyPercent * 100) & "/100"
    UserControl.Height = lblBase.Height
    intMsgStyle = ePercentInt
    Call setLabelSize
End Sub
Private Sub UserControl_Resize()
    Call setLabelSize
End Sub
Private Sub setLabelSize()
    lblBase.Move 0, 0, UserControl.ScaleWidth, UserControl.ScaleHeight
    lblTop.Move lblBase.Left, lblBase.Top, dblMyPercent * lblBase.Width, lblBase.Height
    lblValue.Move lblBase.Left, (lblBase.Height - lblValue.Height) / 2 + 20, lblBase.Width
End Sub
'set the value
Public Property Let Value(ByVal Value As Long)
    If Value < Min Then
        lngMyValue = Min
    ElseIf Value > Max Then
        lngMyValue = Max
    Else
        lngMyValue = Value
    End If
    dblMyPercent = lngMyValue / (Max - Min)
    lblTop.Width = dblMyPercent * lblBase.Width
    Select Case intMsgStyle
        Case eOnlyValueInt: strMsg = Int(dblMyPercent * 100)
        Case eOnlyValueDouble: strMsg = CStr(dblMyPercent * 100)
        Case ePercentInt: strMsg = Int(dblMyPercent * 100) & "/100"
        Case ePercentDouble: strMsg = CStr(dblMyPercent * 100) & "/100"
    End Select
    lblValue.Caption = strMsg
End Property
'
Public Property Get Value() As Long
    Value = lngMyValue
End Property
'set the percent
Public Property Let Percent(ByVal Percent As Double)
    If Percent < 0 Then
        dblMyPercent = 0
    ElseIf Percent > 1 Then
        dblMyPercent = 1
    Else
        dblMyPercent = Percent
    End If
    lngMyValue = dblMyPercent * (Max - Min)
    lblTop.Width = dblMyPercent * lblBase.Width
    Select Case intMsgStyle
        Case eOnlyValueInt: strMsg = Int(dblMyPercent * 100)
        Case eOnlyValueDouble: strMsg = CStr(dblMyPercent * 100)
        Case ePercentInt: strMsg = Int(dblMyPercent * 100) & "/100"
        Case ePercentDouble: strMsg = CStr(dblMyPercent * 100) & "/100"
    End Select
    lblValue.Caption = strMsg
End Property
Public Property Get Percent() As Double
    Percent = dblMyPercent
End Property
'is show msg
Public Property Let ShowMsg(ByVal ShowMsg As Boolean)
    isShowMsg = ShowMsg
    lblValue.Visible = isShowMsg
End Property
Public Property Get ShowMsg() As Boolean
    ShowMsg = isShowMsg
End Property
'msg style
Public Property Let MsgStyle(ByVal MsgStyle As FigureStyle)
    intMsgStyle = MsgStyle
    Select Case intMsgStyle
        Case eOnlyValueInt: strMsg = Int(dblMyPercent * 100)
        Case eOnlyValueDouble: strMsg = CStr(dblMyPercent * 100)
        Case ePercentInt: strMsg = Int(dblMyPercent * 100) & "/100"
        Case ePercentDouble: strMsg = CStr(dblMyPercent * 100) & "/100"
    End Select
    lblValue.Caption = strMsg
End Property
Public Property Get MsgStyle() As FigureStyle
    MsgStyle = intMsgStyle
End Property

以下为运行状态:

image.png

image.png

整个工程下载:GitHub - sysdzw/vbprocessbar: vb进度条控件

目录
相关文章
|
XML Dubbo Java
Dubbo 3 Spring相关优化
Spring Context Initialization首先,我们先来看一下Spring context初始化主要流程,如下图所示: 相关代码:org.springframework.context.support.AbstractApplicationContext#refresh()简单描述一下每个步骤包含的内容:创建BeanFactory:读取加载XML/注解定义的BeanDefiniti
1306 3
Dubbo 3 Spring相关优化
|
监控 安全 网络协议
|
前端开发 开发者 UED
React 18 与之前版本的主要区别
【10月更文挑战第12天】 总的来说,React 18 的这些区别体现了 React 团队对于提升应用性能、用户体验和开发效率的持续努力。开发者需要适应这些变化,充分利用新特性来构建更出色的应用。同时,随着技术的不断发展,React 也将继续演进,为开发者带来更多的创新和便利。
646 58
|
Java 测试技术 API
软件测试中的自动化测试框架选择与应用##
在快速迭代的软件开发周期中,选择合适的自动化测试框架对于提高软件质量和开发效率至关重要。本文探讨了当前流行的几种自动化测试框架的特点和适用场景,旨在为软件开发团队提供决策依据。 ##
【Vue2从入门到精通】一分钟让你学会vue2搜索关键词高亮
本文主要介绍了vue2实现搜索关键词高亮的方法,有需要的朋友可以借鉴参考,祝大家多多进步,早日升职加薪。
569 0
【Vue2从入门到精通】一分钟让你学会vue2搜索关键词高亮
|
C# Android开发 iOS开发
9 个 .NET UI 框架,您的选择是?
介绍 9 款 .NET UI 框架,有你的菜麽。
2755 1
9 个 .NET UI 框架,您的选择是?
|
芯片 SoC 内存技术
全志H713红外IR遥控配置方法
这篇文章详细介绍了全志H713芯片平台配置红外遥控器的方法,包括获取遥控器规格、NEC协议的配置步骤、其他IR协议配置以及解决头码配置问题的方法。
833 5
全志H713红外IR遥控配置方法
|
机器学习/深度学习 自然语言处理 计算机视觉
深度学习500问——Chapter05: 卷积神经网络(CNN)(2)
深度学习500问——Chapter05: 卷积神经网络(CNN)(2)
340 2
|
数据可视化 前端开发 大数据
商场智能导视系统深度解析,AR与大数据融合创新商业运营模式
**商场智能导视系统提升购物体验:** 通过三维电子地图、AR导航、AR营销、VR全景导购及可视化数据,解决顾客寻路困扰,增强店铺曝光,简化招商流程,优化商场管理,借助科技创新驱动顾客满意度、品牌曝光度及运营效率的全面提升。
740 0
商场智能导视系统深度解析,AR与大数据融合创新商业运营模式
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp微信小程序的大学生心理健康管理系统的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的大学生心理健康管理系统的详细设计和实现
309 0

热门文章

最新文章