C#-4秒以内に1-100%の負荷を表示する
-
05-07-2019 - |
質問
スプラッシュスクリーンに4秒間表示されるラベルがあります。ラベルにロードプロセスをパーセンテージで表示しようとしています。明らかに、これは単にプログラムが実際に起動しており、実際に「ロード」されていないことをユーザーに示すためです。何でも。ラベルに4秒以内にパーセンテージ(1%から100%へ)を表示させる方法はありますか?これを行う方法が少し失われました。
解決
フォームにタイマーコントロールを配置し、Intervalプロパティを40に、Enabledプロパティをtrueに設定します。次のようなフォームレベルの変数を作成します。
private int _Progress = 0;
タイマーのティックイベントに次のコードを入力します。
if (_Progress < 100)
{
_Progress++;
label1.Text = _Progress.ToString() + "%";
}
else
{
timer1.Enabled = false;
}
タイマーは実際にはミリ秒まで正確ではないため、正確に4秒かかることはありませんが、ジョブは実行されます。
他のヒント
(WPFではなく)WinFormsを使用している場合、最も簡単な方法はタイマーコントロールです。タイムアウトを40ミリ秒に設定します(4秒= 4000ミリ秒。4000ミリ秒/ 100更新= 40ミリ秒)。進行状況を追跡するためのクラスレベルの整数を作成します。 OnTickイベントのコードは次のようになります...
if(progress < 100)
{
progress++;
progessLabel.Text = String.Format("Loading... Progress: {0}%", progress);
}
else
{
timer.Enabled = false;
}
間隔が100ミリ秒に設定されているタイマーが最も簡単なアプローチです。タイマーイベントが呼び出された回数をカウントし、ティックごとに進行状況バーを2.5%更新します。
これは機能しますが、プログレスバーはこの状況には理想的ではないと思います。代わりに、プログラムが起動していることを示しますが、プログレスバーのように誤解を招かないので、アニメーション化されたグラフィックだけが良いでしょう。
マイクロソフトは、特定のアプリケーションで誤解を招くプログレスバーを使用するというこの間違いを定期的に犯していると思います。