質問

スプラッシュスクリーンに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%更新します。

これは機能しますが、プログレスバーはこの状況には理想的ではないと思います。代わりに、プログラムが起動していることを示しますが、プログレスバーのように誤解を招かないので、アニメーション化されたグラフィックだけが良いでしょう。

マイクロソフトは、特定のアプリケーションで誤解を招くプログレスバーを使用するというこの間違いを定期的に犯していると思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top