用C#寫一個簡單的進度介面
阿新 • • 發佈:2018-12-04
介面設計如下:
實現類:
public partial class FormProgressInfo : Form { public FormProgressInfo(int nMinimum = 0, int nMaximum = 100) { InitializeComponent(); if (nMinimum >= 0 && nMaximum > nMinimum) { progressBarInfo.Maximum = nMaximum; progressBarInfo.Minimum = nMinimum; progressBarInfo.Value = nMinimum; } } public void SetPos(int nPos) { if (nPos <= progressBarInfo.Maximum) { progressBarInfo.Value = nPos; labelProgressValue.Text = $"{nPos * 100 / progressBarInfo.Maximum}%"; } Application.DoEvents(); } public void SetTip(string sTip = "正在執行...") { if (!string.IsNullOrEmpty(sTip)) labelProgressTip.Text = sTip; Application.DoEvents(); } private void FormProgressInfo_Load(object sender, EventArgs e) { if (null != Owner) Owner.Enabled = false; } private void FormProgressInfo_FormClosed(object sender, FormClosedEventArgs e) { if (null != Owner) Owner.Enabled = true; } }
呼叫:
var formProgress = new FormProgressInfo(0, 1024);
formProgress.Show(this); //this用於指定父窗體
寫進度、寫提示應用SetPos、SetTip就好了。