VB.Net中提供了ProgressBar控件,用于顯示進度條
湘潭縣ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
我建議你不要用進度條顯示剩余時間而是顯示執(zhí)行進度
這樣比較好控制
設(shè)置ProgressBar的Minimum和Maximum屬性為循環(huán)的起始和終止數(shù)值
然后在代碼的循環(huán)體中計算當(dāng)前循環(huán)的進度,然后設(shè)置進度條的Value屬性,
將進度顯示在進度條上
比如,簡單的例子:
Dim Progress As Integer
ProgressBar1.Minimum = Min
ProgressBar1.Maximum = Max
For i As Integer = Min To Max
'執(zhí)行計算.......
Progress = i \ Max '計算進度
ProgressBar1.Value = Progress '顯示進度
My.Application.DoEvents() '使用Doevents防止窗體假死使進度條看不到,但是會嚴重降低運行速度
Next
這里的優(yōu)化技巧是,可以設(shè)置為每隔N次循環(huán)才更新進度條
If Not Progress Mod N Then ProgressBar1.Value = Progress
不然進度條的更新也許比計算的速度還要慢很多
該實例有很多實現(xiàn)方法,下面介紹一種不同的給你:
首先要在窗體中載入以下控件:progressbar(進度條),label(用來實時顯示文本提示),兩個timer(分別控制進度條進度的增減),然后用以下代碼就能實現(xiàn):
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Enabled = True
Timer1.Interval = 500
Timer2.Interval = 500
ProgressBar1.Value = 0
ProgressBar1.Maximum = 100
ProgressBar1.Minimum = 0
End Sub
'上述過程是設(shè)置控件的初始值,也可以在屬性面板設(shè)置
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
ProgressBar1.Value += 1
Label1.Text = "當(dāng)前完成" ProgressBar1.Value "%"
If (ProgressBar1.Value = 100) Then
Timer1.Enabled = False
Timer2.Enabled = True
End If
End Sub
'timer1用來控制進度的增加
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
ProgressBar1.Value -= 1
Label1.Text = "當(dāng)前完成" ProgressBar1.Value "%"
If (ProgressBar1.Value = 0) Then
Timer1.Enabled = True
Timer2.Enabled = False
End If
End Sub
'time2用來控制進度的減少
End Class
在vb.net工具箱中 ProgressBar 控件圖標。
ProgressBar 控件常用屬性有:Maximum、Minimum、Step、Value;常用的方法有:PerformStep、Increment。
Maximum、Minimum 屬性:指ProgressBar 控件可變化的最大和最小值。
Step 屬性:ProgressBar 控件調(diào)用 PerformStep 方法時候增長的步長。
Value 屬性:ProgressBar 控件當(dāng)前的位置值。
PerformStep 方法:按照 Step 屬性的數(shù)量增加進度欄的當(dāng)前位置。
Increment 方法:按指定的數(shù)量增加進度欄的當(dāng)前位置。
ProgressBar 控件又稱進度條控件,它是一個應(yīng)用很廣的控件,可以在需要執(zhí)行較長的程序過程中使用它來指示當(dāng)前任務(wù)執(zhí)行的進度,如果這樣的過程中沒有視覺提示,用戶可能會認為應(yīng)用程序不響應(yīng),通過在應(yīng)用程序中使用 ProgressBar,可以告訴用戶應(yīng)用程序正在執(zhí)行任務(wù)且仍在響應(yīng)。
有不是多線程的,.NET有一個異步控件來完成這個事情,BackgroundWorker。
多線程其實比你想象的簡單,你計劃操作步驟,打比方說我們處理一個文件,用進度條來顯示進度。我們可以定義解壓他進度為5%,解密文件后哦進度完成20%,讀取數(shù)據(jù)后進度完成30%,重新整理插入數(shù)據(jù)后進度完成60%,再加密,進度為80%,再壓縮進度為90%,再發(fā)送進度為95%,刪除歷史記錄結(jié)束動作進度為100%。這種事就要多線程去完成,調(diào)用控件你就需要委托或者回調(diào)控件。
進度條給他賦值就好了,程序運行后你會發(fā)現(xiàn)進度條在動。
這是現(xiàn)在90%程序進度條原理。
在狀態(tài)欄的 Panel 屬性中,有一項可以將整個 Panel 定義成一個進度條的,你不妨試試。在它的屬性頁中有設(shè)置。
網(wǎng)頁標題:vb.net進度條實例的簡單介紹
分享路徑:http://jinyejixie.com/article16/dsssigg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、手機網(wǎng)站建設(shè)、網(wǎng)站排名、做網(wǎng)站、電子商務(wù)、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)