2009-12-04 71 views

回答

2

你有它什麼時候完成,例如任何跡象獲得「迄今爲止的結果」?如果不是,您想要使用ProgressBar,將Style設置爲ProgressBarStyle.Marquee - 這將自動生成動畫,並且您只需在之後停止。請注意,您需要啓用視覺樣式。

顯然,您應該在後臺線程中執行查詢(例如通過BackgroundWorker)以避免阻塞UI線程。

如果您的整體查詢實際上是由多個步驟組成的,您可以通過指出它實際上已經走了多遠來使您的進度條更有用......但我完全理解,情況並非如此。

下面是一個使用字幕樣式的例子:

using System; 
using System.Drawing; 
using System.Windows.Forms; 

public class Test 
{ 
    public static void Main(String[] args) 
    { 
     Application.EnableVisualStyles(); 
     Button start = new Button { 
      Text = "Start", 
      Location = new Point(10, 30) 
     }; 
     Button stop = new Button { 
      Text = "Stop", 
      Location = new Point(10, 60) 
     }; 

     ProgressBar bar = new ProgressBar { 
      Style = ProgressBarStyle.Marquee, 
      Location = new Point(10, 90), 
      MarqueeAnimationSpeed = 20, 
      Visible = false 
     }; 
     Form form = new Form { 
      Size = new Size(100, 200), 
      Controls = { start, stop, bar } 
     }; 
     start.Click += (s, a) => bar.Visible = true; 
     stop.Click += (s, a) => bar.Visible = false; 
     Application.Run(form); 
    } 
} 
+0

此代碼將從.NET 3.5工作 – serhio

+0

@Serhio:你問或說明?是的,它將在.NET 3.5上運行。 –

2

你可以使用一個線程,或者,如果問題是,你得到了很多的數據,使用DataReader並更新進度而讀。