private void BeginData_Click(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "解析中...请稍候...";
            foreach (string MyFile in Directory.GetFiles(label4.Text, "20*.bin"))
            {
               ……………………
               richTextBox1.AppendText(MyFile + "解析完成" + "\n\r")
            }
            toolStripStatusLabel1.Text = "解析完成!";
        }以上这段代码中有问题么??
在点击butten后,toolStripStatusLabel1.Text的内容不变,richTextBox1.Text也不变,在butten_Click事件完成的时候toolStripStatusLabel1.Text显示解析完成,richTextBox1.Text把之前需要显示出来的所有数据一下子显示出来,这是什么原因?

解决方案 »

  1.   

    richTextBox1.Text不会变得,要本次事件执行完成之后才会变,所以只可能显示出解析完成
    如果你把toolStripStatusLabel1.Text = "解析完成!"; 去掉,则在解析完成后可以看到
    toolStripStatusLabel1显示委 "解析中...请稍候..."; 
      

  2.   

            private void BeginData_Click(object sender, EventArgs e) 
            { 
                toolStripStatusLabel1.Text = "解析中...请稍候..."; 
                foreach (string MyFile in Directory.GetFiles(label4.Text, "20*.bin")) 
                { 
                  …………………… 
                  richTextBox1.AppendText(MyFile + "解析完成" + "\n\r") 
                Thread.Sleep(100);
                Application.DoEvents();

                } 
                toolStripStatusLabel1.Text = "解析完成!"; 
            } 
      

  3.   

    解决了,Application.DoEvents(),就避免多线程了。散分