グリッドをロードするときに使用するプログレス バーを設計しました (ストアド プロシージャからデータグリッドビューをロードします)。ただし、ストアド プロシージャを呼び出すプロセスには、呼び出す項目がいくつかあります (以下を参照)。プログレスバーを機能させるのは早い段階ですが(以下のコードには含まれていないため、なぜここにいるのですか)、私の質問はこれです。
私が追跡しているものの進行状況が複数の異なる方法である場合、進行状況バーは適切に動作しますか? 「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; }
}
}
}