有不是多線程的,.NET有一個異步控件來完成這個事情,BackgroundWorker。
沁水網站制作公司哪家好,找創新互聯建站!從網頁設計、網站建設、微信開發、APP開發、成都響應式網站建設公司等網站項目制作,到程序開發,運營維護。創新互聯建站自2013年起到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創新互聯建站。
多線程其實比你想象的簡單,你計劃操作步驟,打比方說我們處理一個文件,用進度條來顯示進度。我們可以定義解壓他進度為5%,解密文件后哦進度完成20%,讀取數據后進度完成30%,重新整理插入數據后進度完成60%,再加密,進度為80%,再壓縮進度為90%,再發送進度為95%,刪除歷史記錄結束動作進度為100%。這種事就要多線程去完成,調用控件你就需要委托或者回調控件。
進度條給他賦值就好了,程序運行后你會發現進度條在動。
這是現在90%程序進度條原理。
程序底部狀態欄吧? 工具箱 - 菜單和工具欄 選項卡下 有個 StatusStrip 拖到窗體上就跑下面了 點擊它,彈出菜單中 選擇 ProgressBar 就指定 進度條在 狀態欄上了。 你原來添加的PB可以刪除了。
該實例有很多實現方法,下面介紹一種不同的給你:
首先要在窗體中載入以下控件:progressbar(進度條),label(用來實時顯示文本提示),兩個timer(分別控制進度條進度的增減),然后用以下代碼就能實現:
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
'上述過程是設置控件的初始值,也可以在屬性面板設置
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
ProgressBar1.Value += 1
Label1.Text = "當前完成" 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 = "當前完成" ProgressBar1.Value "%"
If (ProgressBar1.Value = 0) Then
Timer1.Enabled = True
Timer2.Enabled = False
End If
End Sub
'time2用來控制進度的減少
End Class
VB本身有進度條控件。程序啟動時加載多少控配置,組件都是編寫源碼時可知的。進度條的上限就是加載組件,配置數的和,加載成功一個就自加1
這個不象是怎么傳遞Pr值的問題吧,是不是讀取過程中卡啊?
在pr=J 下面加一句My.Application.DoEvents() ,暫時釋放一下控制權,使程序去處理完其它事件。再說不需要時間控件,直接在循環過程中修改進度值也可以,然后來一句My.Application.DoEvents()。
分享題目:vb.net中進度條,vb的進度條在哪里
標題鏈接:http://m.newbst.com/article26/hsejcg.html
成都網站建設公司_創新互聯,為您提供網站建設、網站營銷、商城網站、面包屑導航、外貿建站、移動網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯