progressBarControl和marqueeProgressBarControl
一.progressBarControl
progressBarControl是一個進度條控件
幾個重要參數
Minimum------------------進度最小數值
Maximum-----------------進度最大數值
Step----------------------每走一步的數值
Position ------------------當前值
EditValue-----------------編輯值
ProgressViewStyle--------樣式(其實我沒看出什么區別)
ShowTitle-----------------是否顯示標題(沒有設置顯示百分比的時候一般顯示value值)
PercentView---------------是否顯示百分比(需要ShowTitle為true)
ProgressKind-------------進度條方向(橫向/縱向),這只是進度的顯示方向,具體控件還要自己把它拉成橫向或者縱向
TextOrientation-----------進度條文本顯示方向(橫向/縱向)
方法
PerformStep() -----------進度條前進一步
添加兩個進度條,一個橫向,一個縱向,並初始化一下參數
//水平進度條 progressBarControlH.Properties.Minimum = 0; progressBarControlH.Properties.Maximum = 100; progressBarControlH.Properties.Step = 1; progressBarControlH.Properties.ProgressViewStyle = DevExpress.XtraEditors.Controls.ProgressViewStyle.Solid; progressBarControlH.Position = 0; progressBarControlH.Properties.ShowTitle = true; progressBarControlH.Properties.PercentView = true; progressBarControlH.Properties.ProgressKind = DevExpress.XtraEditors.Controls.ProgressKind.Horizontal; //垂直進度條 progressBarControlV.Properties.Minimum = 0; progressBarControlV.Properties.Maximum = 100; progressBarControlV.Properties.Step = 1; progressBarControlV.Properties.ProgressViewStyle = DevExpress.XtraEditors.Controls.ProgressViewStyle.Solid; progressBarControlV.Position = 0; progressBarControlV.Properties.ShowTitle = true; progressBarControlV.Properties.PercentView = true; progressBarControlV.Properties.ProgressKind = DevExpress.XtraEditors.Controls.ProgressKind.Vertical; progressBarControlV.Properties.TextOrientation = DevExpress.Utils.Drawing.TextOrientation.Horizontal;
當把進度條設置為縱向的時候一般需要Title或者百分比的顯示還是橫向的,這樣看起來才舒服,所以要設置一下TextOrientation屬性
調用代碼:
for (int i = 0; i < 100; i++) { System.Threading.Thread.Sleep(120); progressBarControlH.PerformStep(); progressBarControlV.PerformStep(); //progressBarControl1.Position +=1; //progressBarControl1.EditValue = i + 1; //處理當前消息隊列中的所有windows消息,不然進度條會不同步 System.Windows.Forms.Application.DoEvents(); } progressBarControlH.EditValue = 0; progressBarControlV.EditValue = 0;
讓進度條移動有三種方式
1.改變Position的值
2.改變EditValue的值
3.用PerformStep方法
不過要注意的是,這三種方式后面都要加上System.Windows.Forms.Application.DoEvents(),就是每次改變進度的時候都要讓windows處理當前隊列的消息,以確保進度條同步,否則可能出現進度條的數據更改了,可是進度沒有動的情況
二.marqueeProgressBarControl
marqueeProgressBarControl用起來比較簡單,但是沒有ProgressBarControl的顯示進度和百分比的功能
marqueeProgressBarControlH.Properties.ProgressKind = DevExpress.XtraEditors.Controls.ProgressKind.Horizontal; marqueeProgressBarControlH.Properties.ShowTitle = true; marqueeProgressBarControlH.Text = "橫向讀取數據中,請稍等。。。。"; marqueeProgressBarControlV.Properties.ProgressKind = DevExpress.XtraEditors.Controls.ProgressKind.Vertical; marqueeProgressBarControlV.Properties.ShowTitle = true; marqueeProgressBarControlV.Text = "縱向數據讀取中,請稍等"; marqueeProgressBarControlV.Properties.TextOrientation = DevExpress.Utils.Drawing.TextOrientation.VerticalUpwards;
最后效果