关键词搜索

源码搜索 ×
×

VB.net 进度条使用

发布2021-02-10浏览2123次

详情内容

ProgressBar 控件又称进度条控件,它是一个应用很广的控件,可以在需要执行较长的程序过程中使用它来指示当前任务执行的进度,如果这样的过程中没有视觉提示,用户可能会认为应用程序不响应,通过在应用程序中使用 ProgressBar,可以告诉用户应用程序正在执行任务且仍在响应。

在vb.net工具箱中 ProgressBar 控件图标如下图一所示:

在这里插入图片描述

ProgressBar 控件常用属性有:Maximum、Minimum、Step、Value;常用的方法有:PerformStep、Increment。
Maximum、Minimum 属性:指ProgressBar 控件可变化的最大和最小值。
Step 属性:ProgressBar 控件调用 PerformStep 方法时候增长的步长。
Value 属性:ProgressBar 控件当前的位置值。
PerformStep 方法:按照 Step 属性的数量增加进度栏的当前位置。
Increment 方法:按指定的数量增加进度栏的当前位置。

下面我们就用示例来演示它的属性和方法。

1、未知界限
设置Style属性为Marquee,进度块是自动推进的,不过不能反映实际进度,也就是提醒一下用户:程序在正常运行中,而不是死机了。

2、已知界限
在“循环增加1”的按钮Click事件中添加如下代码:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim i As Integer = 0

        ProgressBar1.Value = 0
        ProgressBar1.Minimum = 0
        ProgressBar1.Maximum = 100

        For i = 1 To 100
            ProgressBar1.Value += 1
            System.Threading.Thread.Sleep(100)
        Next
    End Sub

    在“按步长增加”按钮Click事件中添加如下代码:

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            For r = 0 To 100
                If ProgressBar1.Value < 100 Then
                    ProgressBar1.Value = ProgressBar1.Value + 1
                Else
                    MsgBox("进度完成", MsgBoxStyle.Information, "提示")
                    Exit For '退出循环
                End If
            Next
    
        End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在“按输入值增加”按钮Click事件中添加如下代码:

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
            ProgressBar1.Minimum = 0
            ProgressBar1.Maximum = 100
    
            Dim i As Integer = CInt(InputBox("输入要增加的量", , "15"))
    
            ProgressBar1.Increment(i)
        End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    按F5运行,就可以演示 ProgressBar 控件增加值的vb.net教程三种方法,注意使用PerformStep、Increment这两种方法的时候并不会因为Value的值超过Maximum 而引发错误。
    按时间出发

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ProgressBar1.Value = 0
    '每隔1000毫秒触发一次
    Timer1.Interval = 1000
    Timer1.Enabled = False
    End Sub

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        If ProgressBar1.Value < 100 Then
            ProgressBar1.Value = ProgressBar1.Value + 1
        Else
            Timer1.Enabled = False
        End If
    End Sub
    
    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        Timer1.Enabled = True
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    作者:不务正业程序熊
    链接:https://www.jianshu.com/p/3bd48e248734
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    相关技术文章

    点击QQ咨询
    开通会员
    返回顶部
    ×
    微信扫码支付
    微信扫码支付
    确定支付下载
    请使用微信描二维码支付
    ×

    提示信息

    ×

    选择支付方式

    • 微信支付
    • 支付宝付款
    确定支付下载