我設計了一個進度條,當我加載網格時(我從存儲過程加載datagridview)時,我想使用該進度條。但是,調用存儲過程的過程有幾個不同的它調用的項目(見下文)。我很早就讓進度條起作用(它不在下面的代碼中,所以爲什麼在這裏),但我的問題是這樣的。具有多個操作的進度條
當我跟蹤的進度是多種不同的方法時,進度條能否正確啓動? 「LoadGrid」方法是我真正想跟蹤進度的方法,因爲這是存儲過程的處理和datagridview的加載(即時間消耗過程)。我想我更多地問什麼是適當的技術,而不是使用確切的代碼,但我在進度條上知之甚少。我知道我可以使用一個隨機的圖標,表示「忙碌」,但如果可以合法地進行,我寧願擁有進度條。
public void btnLoadGrid_Click(object sender, EventArgs e)
{
frmProgress progressForm = new frmProgress();
try
{
progressForm.MdiParent = this;
progressForm.Text = "Importing DSC_0";
progressForm.Top = this.Height/3 - progressForm.Height/2;
progressForm.Left = this.Width/2 - progressForm.Width/2;
//ofd1.Title = "Import legacy DSC balances";
//this.ofd1.ShowDialog(this);
//Need code to empty grid before loading
grd1.Rows.Clear();
grd1.Refresh();
//Load grid based on new selections
GetUserSelections();
GetUserRelatedInfo();
LoadLabelForecastType();
LoadGrid();
}
catch (Exception ex)
{
util.LogError(ex);
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
Cursor.Current = Cursors.Default;
progressForm.Close();
}
和進度條本身:
namespace AmortClient
{
public partial class frmProgress : Form
{
public frmProgress()
{
InitializeComponent();
}
public ProgressBar Pbar
{
get { return this.pb1; }
}
}
}
最後一次我用我用後臺工作,你只是包裝你的所有「工作」在for循環中的進度條。以下是我使用的步驟。 http://www.codeproject.com/Tips/83317/BackgroundWorker-and-ProgressBar-demo – 2013-03-27 15:45:06
一個很好的教程。非常基本但很有效。我認爲我的項目代碼的原作者可能會使用它,結合泛型和代表的其他一些內容,來提出我們的系統。我只知道這麼多,因爲我不得不在他後面進行補丁,這意味着要先學習如何工作! = D – Nevyn 2013-03-27 17:23:38
謝謝,我會在接下來的幾天裏讀這本書並試一試。 – 2013-03-27 20:12:07