次の方法で共有


ProgressBar クラス

Windows プログレス バー コントロールを表します。

名前空間: System.Windows.Forms
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)

構文

'宣言
<ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _
<ComVisibleAttribute(True)> _
Public Class ProgressBar
    Inherits Control
'使用
Dim instance As ProgressBar
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] 
[ComVisibleAttribute(true)] 
public class ProgressBar : Control
[ClassInterfaceAttribute(ClassInterfaceType::AutoDispatch)] 
[ComVisibleAttribute(true)] 
public ref class ProgressBar : public Control
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ 
/** @attribute ComVisibleAttribute(true) */ 
public class ProgressBar extends Control
ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) 
ComVisibleAttribute(true) 
public class ProgressBar extends Control

解説

ProgressBar コントロールは、次の 3 つのスタイルのうちいずれかを使用して、時間のかかる操作の進行状況を視覚的に示します。

  • 左から右へ徐々に増加するセグメント化されたブロック。

  • 左から右へ塗りつぶされる連続的なバー。

  • ProgressBar 内をマーキー方式でスクロールするブロック。

Style プロパティは、表示される ProgressBar のスタイルを決定します。ProgressBar コントロールの向きは水平方向にのみ設定できます。ProgressBar を垂直方向に作成する方法の例については、ProgressBarRenderer クラスのトピックを参照してください。ProgressBar コントロールは、通常、アプリケーションがファイルのコピーやドキュメントの印刷などのタスクを実行するときに使用されます。視覚的な手掛かりがないと、アプリケーションのユーザーは、アプリケーションから応答がないと判断する場合もあります。アプリケーションで ProgressBar を使用することにより、そのアプリケーションが時間のかかるタスクを実行中であり、まだ応答中であることをユーザーに警告します。

Maximum プロパティおよび Minimum プロパティは、タスクの進行状況を表す値の範囲を定義します。Minimum プロパティは、通常は値 0 に設定され、Maximum プロパティは、通常はタスクの完了を示す値に設定されます。たとえば、複数のファイルをコピーする場合に、進行状況を適切に表示するには、Maximum プロパティをコピーされるファイルの合計数に設定できます。

Value プロパティは、操作の完了に向かってアプリケーションがどこまで進行したかを表します。ProgressBar で表示される値は、Value プロパティの現在の値の近似値にすぎません。Value プロパティは、ProgressBar のサイズを基準として、次のブロックを表示したり、バーのサイズを増やしたりするタイミングを決定します。

ProgressBar によって表示される値を変更するには、Value プロパティを直接変更する方法の他に、いくつかの方法があります。Step プロパティを使用すると、Value プロパティをインクリメントする特定の値を指定してから、PerformStep メソッドを呼び出して値をインクリメントできます。インクリメント値を変更するには、Increment メソッドを使用して、Value プロパティをインクリメントするために使用する値を指定します。

注意

Windows XP Home Edition、Windows XP Professional、Windows Server 2003 以上で visual スタイルが有効になっている場合、ProgressBar に対する ForeColor の変更は適用されません。

使用例

ProgressBar コントロールを使用して、ファイルのコピー操作の進行状況を表示するコード例を次に示します。この例では、Minimum プロパティおよび Maximum プロパティを使用して、コピーするファイル数に相当する ProgressBar の範囲を指定しています。このコードでは、ファイルのコピー時に ProgressBar の値をインクリメントするために、PerformStep メソッドと Step プロパティも使用します。この例では、Form 内に pBar1 という ProgressBar コントロールが作成されており、ファイルのコピー操作を実行し、操作が正常終了したことを示すブール値を返す CopyFile というメソッドが作成されている必要があります。また、コピー対象のファイルを含む文字列の配列が作成され、この例の中で定義されている CopyWithProgress メソッドにその配列が渡されており、そのメソッドが Form の別のメソッドまたはイベントから呼び出される必要もあります。

Private Sub CopyWithProgress(ByVal ParamArray filenames As String())
    ' Display the ProgressBar control.
    pBar1.Visible = True
    ' Set Minimum to 1 to represent the first file being copied.
    pBar1.Minimum = 1
    ' Set Maximum to the total number of files to copy.
    pBar1.Maximum = filenames.Length
    ' Set the initial value of the ProgressBar.
    pBar1.Value = 1
    ' Set the Step property to a value of 1 to represent each file being copied.
    pBar1.Step = 1

    ' Loop through all files to copy.
    Dim x As Integer
    for x = 1 To filenames.Length - 1
        ' Copy the file and increment the ProgressBar if successful.
        If CopyFile(filenames(x - 1)) = True Then
            ' Perform the increment on the ProgressBar.
            pBar1.PerformStep()
        End If
    Next x
End Sub
private void CopyWithProgress(string[] filenames)
{
    // Display the ProgressBar control.
    pBar1.Visible = true;
    // Set Minimum to 1 to represent the first file being copied.
    pBar1.Minimum = 1;
    // Set Maximum to the total number of files to copy.
    pBar1.Maximum = filenames.Length;
    // Set the initial value of the ProgressBar.
    pBar1.Value = 1;
    // Set the Step property to a value of 1 to represent each file being copied.
    pBar1.Step = 1;
    
    // Loop through all files to copy.
    for (int x = 1; x <= filenames.Length; x++)
    {
        // Copy the file and increment the ProgressBar if successful.
        if(CopyFile(filenames[x-1]) == true)
        {
            // Perform the increment on the ProgressBar.
            pBar1.PerformStep();
        }
    }
}
private:
   void CopyWithProgress( array<String^>^filenames )
   {
      // Display the ProgressBar control.
      pBar1->Visible = true;

      // Set Minimum to 1 to represent the first file being copied.
      pBar1->Minimum = 1;

      // Set Maximum to the total number of files to copy.
      pBar1->Maximum = filenames->Length;

      // Set the initial value of the ProgressBar.
      pBar1->Value = 1;

      // Set the Step property to a value of 1 to represent each file being copied.
      pBar1->Step = 1;

      // Loop through all files to copy.
      for ( int x = 1; x <= filenames->Length; x++ )
      {
         // Copy the file and increment the ProgressBar if successful.
         if ( CopyFile( filenames[ x - 1 ] ) == true )
         {
            // Perform the increment on the ProgressBar.
            pBar1->PerformStep();
         }
      }
   }
private void CopyWithProgress(String fileNames[])
{
    // Display the ProgressBar control.
    pBar1.set_Visible(true);
    // Set Minimum to 1 to represent the first file being copied.
    pBar1.set_Minimum(1);
    // Set Maximum to the total number of files to copy.
    pBar1.set_Maximum(fileNames.get_Length());
    // Set the initial value of the ProgressBar.
    pBar1.set_Value(1);
    // Set the Step property to a value of 1 to represent each file
    // being copied.
    pBar1.set_Step(1);
    // Loop through all files to copy.
    for (int x = 1; x <= fileNames.get_Length(); x++) {
        // Copy the file and increment the ProgressBar if successful.
        if (CopyFile(fileNames[(x - 1)]) == true) {
            // Perform the increment on the ProgressBar.
            pBar1.PerformStep();
        }
    }
} //CopyWithProgress

継承階層

System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Windows.Forms.Control
        System.Windows.Forms.ProgressBar

スレッド セーフ

この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

プラットフォーム

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。

バージョン情報

.NET Framework

サポート対象 : 2.0、1.1、1.0

.NET Compact Framework

サポート対象 : 2.0、1.0

参照

関連項目

ProgressBar メンバ
System.Windows.Forms 名前空間