私は、応答性のUIを維持し、ユーザーが項目がまだ働いている見ることができるようにGIFを表示するには、データとPLEASEWAITフォームをロードするためのBackgroundWorkerを使用して、フォームでのDataGridViewを持っています。Backgroundworkerの後でDataGridViewを更新していますか?
それが完了した後、私は何とか新しいデータでDataGridViewのをリフレッシュする必要があります。 ASCまたはDESCを並べ替えるためにヘッダを手動でクリックすると、最新のデータが表示されます。このグリッドをリフレッシュさせるにはどうすればいいですか?
public void btnSearch_Click(object sender, EventArgs e)
{
pleaseWait.Show();
backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
this.TestTableTableAdapter.Fill(this.TestTableData.TestTableTable, txtHotName.Text, ((System.DateTime)(System.Convert.ChangeType(txtDepartFrom.Text, typeof(System.DateTime)))), ((System.DateTime)(System.Convert.ChangeType(txtDepartTo.Text, typeof(System.DateTime)))), ((System.DateTime)(System.Convert.ChangeType(txtBookFrom.Text, typeof(System.DateTime)))), ((System.DateTime)(System.Convert.ChangeType(txtBookTo.Text, typeof(System.DateTime)))));
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
pleaseWait.Hide();
}
上記は素晴らしいものです。エンドユーザーが実際にリフレッシュされたデータを表示するために列を並べ替える必要がなく、リフレッシュする方法が必要です。のjdwengさんのコメントに続いて
は、通常、私はちょうど明確でのDataGridViewに情報を再ロードするだろうが、私は長い時間でDGVsを使用していないと、それを行うためのより良い方法はおそらくあります。見つけてくつろいでください! –
DGVにデータを追加するときに、再ペイントメソッドが自動的に呼び出されることはありません。だから、トリックはバック実際のデータソースへのその後datagridview1.DataSource = NULLを設定し、することです。 – jdweng