ToolStripProgressBar クラスとは? わかりやすく解説

ToolStripProgressBar クラス

メモ : このクラスは、.NET Framework version 2.0新しく追加されたものです。

StatusStrip に含まれる Windows プログレス バー コントロール表します

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

Public Class ToolStripProgressBar
    Inherits ToolStripControlHost
Dim instance As ToolStripProgressBar
public class ToolStripProgressBar : ToolStripControlHost
public ref class ToolStripProgressBar : public
 ToolStripControlHost
public class ToolStripProgressBar extends ToolStripControlHost
public class ToolStripProgressBar extends
 ToolStripControlHost
解説解説

ToolStripProgressBar コントロールは、時間のかかる操作進行状況視覚的に示しますToolStripProgressBar コントロールは、操作進行状況合わせてシステム強調表示カラーで左から右へ塗りつぶされるバー表示します

メモメモ

ToolStripProgressBar コントロール向き平方向にのみ設定できます

ToolStripProgressBar コントロールは、通常アプリケーションファイルコピードキュメント印刷などのタスク実行するときに使用されます。視覚的な手掛かりがないと、アプリケーションユーザーは、アプリケーションから応答がないと判断する場合ありますToolStripProgressBar使用すると、アプリケーション時間のかかるタスク実行していること、およびアプリケーションがまだ応答中であることをユーザー知らせることができます

Maximum プロパティおよび Minimum プロパティは、タスク進行状況を表す値の範囲定義しますMinimum プロパティは、通常は 0 の値に設定されMaximum プロパティは、通常タスク完了を示す値に設定されます。たとえば、複数ファイルコピーする場合に、進行状況適切に表示するには、Maximum プロパティコピーされるファイル合計数に設定することが考えられます。Value プロパティは、操作完了向かってアプリケーションがどこまで進行したかを表しますコントロール表示されるバーブロックコレクションであるため、ToolStripProgressBar によって表示される値は Value プロパティ現在のおおよその値を示しますToolStripProgressBarサイズ基づいてValue プロパティ次のブロックをいつ表示するかを決定します

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

ToolStripProgressBar以前ProgressBar コントロール代わりに採用されていますが、後方互換性のために残されています。

使用例使用例

一連のフィボナッチ数列計算する ToolStripProgressBarコード例次に示します

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.ComponentModel;

class FibonacciNumber : Form
{
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.Run(new FibonacciNumber());
    }

    private StatusStrip progressStatusStrip;
    private ToolStripProgressBar toolStripProgressBar;
    private NumericUpDown requestedCountControl;
    private Button goButton;
    private TextBox outputTextBox;
    private BackgroundWorker backgroundWorker;
    private ToolStripStatusLabel toolStripStatusLabel;
    private int requestedCount;

    public FibonacciNumber()
    {
        Text = "Fibonacci";
        
        // Prepare the StatusStrip.
        progressStatusStrip = new StatusStrip();
        toolStripProgressBar = new ToolStripProgressBar();
        toolStripProgressBar.Enabled = false;
        toolStripStatusLabel = new ToolStripStatusLabel();
        progressStatusStrip.Items.Add(toolStripProgressBar);
        progressStatusStrip.Items.Add(toolStripStatusLabel);

        FlowLayoutPanel flp = new FlowLayoutPanel();
        flp.Dock = DockStyle.Top;

        Label beforeLabel = new Label();
        beforeLabel.Text = "Calculate the first ";
        beforeLabel.AutoSize = true;
        flp.Controls.Add(beforeLabel);
        requestedCountControl = new NumericUpDown();
        requestedCountControl.Maximum = 1000;
        requestedCountControl.Minimum = 1;
        requestedCountControl.Value = 100;
        flp.Controls.Add(requestedCountControl);
        Label afterLabel = new Label();
        afterLabel.Text = "Numbers in the Fibonacci sequence.";
        afterLabel.AutoSize = true;
        flp.Controls.Add(afterLabel);
        
        goButton = new Button();
        goButton.Text = "&Go";
        goButton.Click += new System.EventHandler(button1_Click);
        flp.Controls.Add(goButton);

        outputTextBox = new TextBox();
        outputTextBox.Multiline = true;
        outputTextBox.ReadOnly = true;
        outputTextBox.ScrollBars = ScrollBars.Vertical;
        outputTextBox.Dock = DockStyle.Fill;

        Controls.Add(outputTextBox);
        Controls.Add(progressStatusStrip);
        Controls.Add(flp);

        backgroundWorker = new BackgroundWorker();
        backgroundWorker.WorkerReportsProgress = true;
        backgroundWorker.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);
        backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker1_RunWorkerCompleted);
        backgroundWorker.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged);
        
    }


    private void backgroundWorker1_DoWork(object
 sender, DoWorkEventArgs e)
    {
        // This method will run on a thread other than the UI thread.
        // Be sure not to manipulate any Windows Forms controls created
        // on the UI thread from this method.
        backgroundWorker.ReportProgress(0, "Working...");
        Decimal lastlast = 0;
        Decimal last = 1;
        Decimal current;
        if (requestedCount >= 1)
        { AppendNumber(0); }
        if (requestedCount >= 2)
        { AppendNumber(1); }
        for (int i = 2; i < requestedCount;
 ++i)
        {
            // Calculate the number.
            checked { current = lastlast + last; }
            // Introduce some delay to simulate a more complicated calculation.
            System.Threading.Thread.Sleep(100);
            AppendNumber(current);
            backgroundWorker.ReportProgress((100 * i) / requestedCount, "Working...");
            // Get ready for the next iteration.
            lastlast = last;
            last = current;
        }


        backgroundWorker.ReportProgress(100, "Complete!");
    }

    private delegate void AppendNumberDelegate(Decimal
 number);
    private void AppendNumber(Decimal number)
    {
        if (outputTextBox.InvokeRequired)
        { outputTextBox.Invoke(new AppendNumberDelegate(AppendNumber),
 number); }
        else
        { outputTextBox.AppendText(number.ToString("N0") + Environment.NewLine);
 }
    }
    private void backgroundWorker1_ProgressChanged(object
 sender, ProgressChangedEventArgs e)
    {
        toolStripProgressBar.Value = e.ProgressPercentage;
        toolStripStatusLabel.Text = e.UserState as String;
    }

    private void backgroundWorker1_RunWorkerCompleted(object
 sender, RunWorkerCompletedEventArgs e)
    {
        if (e.Error is OverflowException)
        { outputTextBox.AppendText(Environment.NewLine + "**OVERFLOW ERROR,
 number is too large to be represented by the decimal data type**"); }
        toolStripProgressBar.Enabled = false;
        requestedCountControl.Enabled = true;
        goButton.Enabled = true;

    }

    private void button1_Click(object sender,
 EventArgs e)
    {
        goButton.Enabled = false;
        toolStripProgressBar.Enabled = true;
        requestedCount = (int)requestedCountControl.Value;
        requestedCountControl.Enabled = false;
        outputTextBox.Clear();
        backgroundWorker.RunWorkerAsync();
    }
}
継承階層継承階層
System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Windows.Forms.ToolStripItem
         System.Windows.Forms.ToolStripControlHost
          System.Windows.Forms.ToolStripProgressBar
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ToolStripProgressBar クラス」の関連用語

ToolStripProgressBar クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ToolStripProgressBar クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS