winFrom进度条问题
想实现这样个进度条:主程序中执行一个任务时,弹出进度条窗体。注意,弹出窗口必须是模态对话框(ShowDialog)
主程序代码如下:
namespace ProcessBar{ public partial class Form1 : Form { private delegate void ShowProcessBarFrm(int max, int value); private frmProcessBar myProgbar; public Form1() { InitializeComponent(); myProgbar = new frmProcessBar(); } private void button1_Click(object sender, EventArgs e) { Thread thread = new Thread(new ThreadStart(UpdateProgressBar)); thread.Start(); if (myProgbar != null) { lock (myProgbar.ProgressBar) { myProgbar.ShowDialog(); } } } private void UpdateProgressBar() { ShowProcessBarFrm p = new ShowProcessBarFrm(myProgbar.SetProgess); int initialValue = 100; for (int count = 0; count < initialValue; count = count + 2) { //myProgbar.SetProgess(initialValue, count); p.Invoke(initialValue, count); } } }}
public void SetProgess(int max, int value) { if (value <= max) { if (InvokeRequired) { progressBar1.Maximum = max; progressBar1.Value = value; if (value == max) { progressBar1.Visible = false; } else { progressBar1.Visible = true; } } } }
progressBar1.Maximum = max;
progressBar1.Value = value;
});
}