各位博友好!
現(xiàn)在我想實現(xiàn)這樣的功能:窗體狀態(tài)欄中有個進度條,我想要他顯示處理某個事件或者加載某個事項時的進度,我該如何處理呢?
在線等,知道的大大們就不要藏了,給我個DEMO或者介紹個網(wǎng)站、文章都可以的。
3 回答

慕的地6264312
TA貢獻1817條經(jīng)驗 獲得超6個贊
最好使用BackgroundWorker,簡單易懂.
例子:
private BackgroundWorker bgwConnect; //初始化BGW
private InitBgw { bgwConnect = new BackgroundWorker(); bgwConnect.WorkerSupportsCancellation = true;//允許中止
?bgwConnect.WorkerReportsProgress = true;//允許報告進度-這里就是你需要的
bgwConnect.DoWork += new DoWorkEventHandler(bgwConnect_DoWork); bgwConnect.ProgressChanged += new ProgressChangedEventHandler(bgwConnect_ProgressChanged);
}
private void bgwConnect_DoWork(object sender, DoWorkEventArgs e)
{
?//你執(zhí)行的事件或加載什么
}
private?void bgwConnect_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
?pBConnect.Value = e.ProgressPercentage;//PBConnect是你定義的ProgressBar,一般這里就可以的,如有問題用下面的
//ChangePB(?e.ProgressPercentage);//這里是為了防止和UI線程沖突而用.
}
private void delegate ChangePBDg(int per);
private void ChangePB(int per)
{
if(pBConnect.InvokeRequired)
{
ChangePBDg d = ChangePB;
??????pBConnect.Invoke(d, per);
}
else
{
?pBConnect.Value=per;
}
}
還有個RunWorkerCompleted,在你加載完畢后執(zhí)行什么.
以上

桃花長相依
TA貢獻1860條經(jīng)驗 獲得超8個贊
一般需要進度條的,肯定是要顯示一些密集型計算的狀態(tài),一般會使用異步去實現(xiàn)。
你可以使用委托及控件的beginInvoke去做異步計算,去更新UI
- 3 回答
- 0 關注
- 635 瀏覽
添加回答
舉報
0/150
提交
取消