関連記事
GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ
概要
以下、自分用のメモです。忘れないうちにメモメモ。。。
今更、Windows Formsかよって話しなのですが、現場では全然現役で存在してたりします。
とても久しぶりにプログレスバーを表示した進捗ダイアログみたいなのを作っていたのですが
ラベル部分(トータル何件中の何番目みたいなの)を表示する部分とプログレスバーの描画がなんか合わない。。
プログレスバーが少しだけ遅れて進む感じ。ピタってあって欲しいんだけど・・・・って思って、こちょこちょやってたのですが以下を発見。
ここに乗ってる処理を入れたら一発で解決しました。感謝!
忘れないよう、ここにコピーしておく。
public static class ExtensionMethods { /// <summary> /// Sets the progress bar value, without using 'Windows Aero' animation. /// This is to work around a known WinForms issue where the progress bar /// is slow to update. /// </summary> public static void SetProgressNoAnimation(this ProgressBar pb, int value) { // To get around the progressive animation, we need to move the // progress bar backwards. if (value == pb.Maximum) { // Special case as value can't be set greater than Maximum. pb.Maximum = value + 1; // Temporarily Increase Maximum pb.Value = value + 1; // Move past pb.Maximum = value; // Reset maximum } else { pb.Value = value + 1; // Move past } pb.Value = value; // Move to correct value } }
参考情報
c# - ProgressBar is slow in Windows Forms - Stack Overflow
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。