Winformでローディング中のエフェクトを実装するにはどうしたらいいですか
ローディング効果を実現するには、以下の方法があります。
- ProgressBarコントロールを利用する場合、ProgressBarコントロールをフォームに追加して、Visibleプロパティをfalseに設定しておきます。データの読み込み前にはProgressBarコントロールのVisibleプロパティをtrueにすることで読み込み開始を表します。読み込みが完了したら、Visibleプロパティをfalseにして読み込み完了を表します。
private void btnLoad_Click(object sender, EventArgs e)
{
progressBar1.Visible = true;
// 加载数据
// ...
progressBar1.Visible = false;
}
- BackgroundWorkerコントロールを使用:BackgroundWorkerコントロールをフォームに追加し、DoWorkイベントとRunWorkerCompletedイベントを処理します。DoWorkイベントでデータロード処理を実行し、RunWorkerCompletedイベントでロード後の処理を実行します。
private void btnLoad_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
// 加载数据
// ...
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
// 加载完成后的操作
// ...
}
- 非同期メソッドを活用する: asyncとawaitキーワードを使用してデータのロード処理を非同期メソッドにして、ローディング中のヒント情報を示すLoadingコントロール(LabelやPictureBoxなど)を利用する。非同期メソッドでデータロード処理を行い、ロード完了時にLoadingコントロールの表示を更新します。
private async void btnLoad_Click(object sender, EventArgs e)
{
lblLoading.Visible = true;
// 加载数据
await LoadDataAsync();
lblLoading.Visible = false;
}
private async Task LoadDataAsync()
{
await Task.Run(() =>
{
// 加载数据
// ...
});
}
一般的に使用されるローディング効果を実装する方法をいくつか示したので、状況に応じて適切な方法を選択してください。