2011-10-09 57 views
0

如何在執行_DataReceived中的動作時顯示進度條(不是百分比只是無限的欄)還是等待對話框?在接收串行數據時顯示進度條/等待對話框

例如爲:

private void sp_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) 
     { 
      try 
      { 
       while (sp.BytesToRead > 1) 
       { 
        string line = sp.ReadLine().Trim(); 

        if (line == "EOC") 
        { 
         //finish 
        } 
        else 
        { 
         //string data = sp.ReadExisting(); 
         _serialBuffer.Enqueue(line); 
        } 
      } 

} 

回答

1

只需添加一個進度條,設置它的StyleProgressBarStyle.Marquee,所以它表明它不給的百分比。現在,如下增加它的價值: (我假設這個代碼是在Form,否則,如果您使用的是BackgroundWorker,使用其ReportProgress法)

private void sp_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) 
      { 
       try 
       { 
        while (sp.BytesToRead > 1) 
        { 
         string line = sp.ReadLine().Trim(); 

         if (line == "EOC") 
         { 
          //finish 
          this.progressBar1.Visible = false; 
         } 
         else 
         { 
          //string data = sp.ReadExisting(); 
          _serialBuffer.Enqueue(line); 
          if (this.progressBar1.Value < 100) 
           this.progressBar1.Value++; 
          else 
           this.progressBar1.Value = 0; 
         } 
       } 

    } 
相關問題