我做了个程序C/S的
当mdi子窗体执行查询需要长时间等待时,父窗体的进度条控件显示进度
我试过用线程控制,但是进度条控件不显示进度,真心求教控制进度条的方法
public void StartPrcess()
{
COSIS_Main CM = new COSIS_Main();//父窗体
CM.toolStripProgressBar1.Maximum = 100; //父窗体的进度条控件
CM.toolStripProgressBar1.Value = 0;
while (1 == 1)
{
if (CM.toolStripProgressBar1.Value < 10)
{
CM.toolStripProgressBar1.PerformStep();
}
else
{
CM.toolStripProgressBar1.Value = 0;
}
}
}
private void Btn_Resport_Click(object sender, EventArgs e)
{ Thread cha = new Thread(new ThreadStart(StartPrcess));
cha.Start();
Load_Report();
cha.Abort();
}
当mdi子窗体执行查询需要长时间等待时,父窗体的进度条控件显示进度
我试过用线程控制,但是进度条控件不显示进度,真心求教控制进度条的方法
public void StartPrcess()
{
COSIS_Main CM = new COSIS_Main();//父窗体
CM.toolStripProgressBar1.Maximum = 100; //父窗体的进度条控件
CM.toolStripProgressBar1.Value = 0;
while (1 == 1)
{
if (CM.toolStripProgressBar1.Value < 10)
{
CM.toolStripProgressBar1.PerformStep();
}
else
{
CM.toolStripProgressBar1.Value = 0;
}
}
}
private void Btn_Resport_Click(object sender, EventArgs e)
{ Thread cha = new Thread(new ThreadStart(StartPrcess));
cha.Start();
Load_Report();
cha.Abort();
}
private void button1_Click(object sender, System.EventArgs e)
{
Form2 pj=new Form2();
pj.Show();
//开始处理大量耗时工作
string sor="";
int j = 10000;
for(int i=0;i<j;i++)
{
sor+=i.ToString();
if(i%(j/100)==0)
{
pj.progressBar1.Value++;
pj.label1.Text="已完成:"+string.Format("{0:p}",(double)pj.progressBar1.Value/100);
Application.DoEvents();
}
}
//工作完成,关闭进度条窗体
pj.Close();
}
弹出窗体的进度条还有会有些问题的。