以下是代码中创建progressbar的实例
int count = 0;
private void button4_Click(object sender, EventArgs e)
{
Thread th = new Thread(() => {
Form form = new Form();
form.Name="myForm";
form.Width = 200;
form.Height = 20;
form.ControlBox = false;
//form.ShowInTaskbar = false;
form.StartPosition = FormStartPosition.CenterScreen;
ProgressBar pb = new ProgressBar();
pb.Dock = DockStyle.Fill;
pb.Maximum = 100;
pb.Minimum = 0;
pb.Value = count;
pb.BringToFront();
pb.Visible = true;
pb.Parent = form;
form.ShowDialog();
});
th.Start();
for (int i = 0; i < 1000;i++ )
{
Thread.Sleep(5);
count = Convert.ToInt32(i * 1.0 / 1000 * (100 - 0) + 0);
Control control= FindForm("myForm");
if (control!=null&&control.Name == "myForm" && control.IsHandleCreated)
{
control.Invoke(new Action(() => {
ProgressBar pb = control.Controls[0] as ProgressBar;
pb.Value = count;
}));
}
}
th.Abort();
}
public Form FindForm(string name)
{
foreach (Form f in Application.OpenForms)
{
if (f.Name == name) return f;
}
return null;
}