namespace WindowsForm
{
public partial class Form1 : Form
{
public delegate void changeProgress(int current);
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
begin b = new begin();
b.Go();
}
public void progressChange(int current)
{
progressBar1.Value = current;
}
}
}
namespace WindowsForm
{
public class begin
{
public void Go()
{
Form1 fom1 = new Form1();
WindowsForm.Form1.changeProgress cp = new Form1.changeProgress(fom1.progressChange);
for (int i = 1; i < 100; i++)
{
Console.WriteLine(i.ToString());
cp.BeginInvoke(i, null, null);
Thread.Sleep(1);
}
}
}
}
为什么滚动条没有变化。
你实际调试一下,看执行的时候有没有执行到 public void progressChange(int current)
{
progressBar1.Value = current;
}
这个方法里。
如果执行到了,但实际界面上进度条没有反应的话,你用异步来操作这个begin(多线程)
是不是要重绘才能看到啊,把全部代码发上来瞧瞧
也许要这样
public class begin
{
public void Go(Form1 form1)
{
Form1.changeProgress cp = new Form1.changeProgress(form1.progressChange);
for (int i = 0; i < 100; i++)
{
cp(i);
Thread.Sleep(1);
}
}