private void button1_Click(object sender, EventArgs e)
        {int r=0;
            label1.Visible = true;
            label1.Text = "is runing";
           for(int i=0;i<100000;i++)
               {r=r+i;}    
          lable1.Text="is done";        
        }
这样写的程序,到for循环结束,label1.text在form的显示不变化,还是is running,怎样改可以使label1.text在循环结束在form上显示为is done.

解决方案 »

  1.   

    就是类似的,比如for循环是10000000000;或是for循环内是重复访问数据库的,比较耗费时间的运算,怎么来写像这样的进度提示?
      

  2.   

    private void button1_Click(object sender, EventArgs e)
    {
        int r = 0;
        label1.Visible = true;
        label1.Text = "is runing";
        for (int i = 0; i < 1000; i++)
        { 
            r = r + i;
            System.Threading.Thread.Sleep(10); // 假设是你的耗时语句
            label1.Text = i.ToString();
            Application.DoEvents();
        }
        label1.Text = "is done";
    }