[Tips][ProgressBar] バーのスタイルを変更する

スポンサーリンク

ProgressBarコントロールでは、バーのスタイルを変更することができます。

バーのスタイルは、StyleプロパティProgressBarStyle列挙体の値を指定します。

ProgressBarStyle列挙体
メンバ名 説明
Blocks 分割されたブロックの数を増加させていくことで進行状況を示す
Continuous バーのサイズを滑らかに連続的に増加させていくことで進行状況を示す
Marquee ProgressBar の上を絶え間なくブロックがスクロールすることで進行状況を示す

Marqueeに設定した場合は、値を進捗させるPerformStepメソッドを使用できないことに注意してください。

下記はプログレスバーにスタイルを設定する例です。

Windows 7の場合はスタイルがBlocksとContinuousの区別が付きません。

Windows XPでクラシックスタイルにしている場合は、BlocksとContinuousで違いがあることがわかります。

VBの例

="vb">
' フォームロード時の処理
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    '★★★バーのスタイルを設定する★★★
    ProgressBar1.Style = ProgressBarStyle.Blocks
    ProgressBar2.Style = ProgressBarStyle.Continuous
    ProgressBar3.Style = ProgressBarStyle.Marquee

    'プログレスバーの値を初期化
    ProgressBar1.Value = 0
    ProgressBar2.Value = 0
    ProgressBar3.Value = 0
End Sub

' [Do Something]ボタンクリック時の処理
Private Sub btnDoSomething_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDoSomething.Click
    For I As Integer = 1 To 100
        Application.DoEvents()

        '200mSec スリープ
        System.Threading.Thread.Sleep(200)

        '値を進捗させる
        ProgressBar1.PerformStep()
        ProgressBar2.PerformStep()
        '***Marqueeに設定した場合はPerformStepは使用できない***
        'ProgressBar3.PerformStep()
    Next
End Sub

C#の例

// フォームロード時の処理
private void Form3_Load(object sender, EventArgs e)
{
    // ★★★バーのスタイルを設定する★★★
    progressBar1.Style = ProgressBarStyle.Blocks;
    progressBar2.Style = ProgressBarStyle.Continuous;
    progressBar3.Style = ProgressBarStyle.Marquee;

    // プログレスバーの値を初期化
    progressBar1.Value = 0;
    progressBar2.Value = 0;
    progressBar3.Value = 0;
}

/ [Do Something]ボタンクリック時の処理
private void btnDoSomething_Click(object sender, EventArgs e)
{
    for (int i = 0; i < 100; i++)
    {
        Application.DoEvents();
        // 200mSec スリープ
        System.Threading.Thread.Sleep(100);

        // 値を進捗させる
        progressBar1.PerformStep();
        progressBar2.PerformStep();

        // ***Marqueeに設定した場合はPerformStepは使用できない***
        // progressBar3.PerformStep()
    }
}
Please follow and like us:

コメント

タイトルとURLをコピーしました