您好,登錄后才能下訂單哦!
這篇文章主要介紹“C#進度條在彈出窗口中顯示的實現方法”,在日常操作中,相信很多人在C#進度條在彈出窗口中顯示的實現方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C#進度條在彈出窗口中顯示的實現方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
在C#中要實現顯示進度條,只要通過C#子線程控制進度條即可。至于彈出一個模式窗口來顯示進度條,則可以按照子線程的思路稍作修改。
C#進度條窗體
首先是進度條窗體,需要在上面添加進度條,然后去掉ControlBox。除此外,還要增加一個方法,用來控制進度條的增加幅度,具體如下:
/// < summary> /// Increase process bar /// < /summary> /// < param name="nValue">the value increased< /param> /// < returns>< /returns> public bool Increase( int nValue ) { if( nValue > 0 ) { if( prcBar.Value + nValue < prcBar.Maximum ) { prcBar.Value += nValue; return true; } else { prcBar.Value = prcBar.Maximum; this.Close(); return false; } } return false; }
C#進度條:主窗體
接著就是主窗體了,如何進行操作了,首先需要定義兩個私有成員,一個委托。其中一個私有成員是保存當前進度條窗體對象,另一個是保存委托方法(即增加進度條尺度),具體如下:
private frmProcessBar myProcessBar = null; private delegate bool IncreaseHandle( int nValue ); private IncreaseHandle myIncrease = null;
接著要在主窗體中提供函數來打開進度條窗體,如下:
/// < summary> /// Open process bar window /// < /summary> private void ShowProcessBar() { myProcessBar = new frmProcessBar(); // Init increase event myIncrease = new IncreaseHandle( myProcessBar.Increase ); myProcessBar.ShowDialog(); myProcessBar = null; }
C#進度條彈出窗口線程創建
那么現在就可以開始創建線程來運行,具體如下:
/// < summary> /// Sub thread function /// < /summary> private void ThreadFun() { MethodInvoker mi = new MethodInvoker( ShowProcessBar ); this.BeginInvoke( mi ); Thread.Sleep( 1000 );//Sleep a while to show window bool blnIncreased = false; object objReturn = null; do { Thread.Sleep( 50 ); objReturn = this.Invoke( this.myIncrease, new object[]{ 2 } ); blnIncreased = (bool)objReturn ; } while( blnIncreased ); }
注意以上,在打開進度條窗體和增加進度條進度的時候,一個用的是BeginInvoke,一個是Invoke,這里的區別是BeginInvoke不需要等待方法運行完畢,而Invoke是要等待方法運行完畢。還有一點,此處用返回值來判斷進度條是否到頭了,如果需要有其他的控制,可以類似前面的方法來進行擴展。
啟動線程,可以如下:
Thread thdSub = new Thread( new ThreadStart( ThreadFun ) ); thdSub.Start();
這樣,一個用模式打開進度條窗體就做完了。
到此,關于“C#進度條在彈出窗口中顯示的實現方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。