[ToolStrip][Tips] プログレスバーを表示する

ToolStripコントロールにプログレスバーを表示するにはToolStripProgressBarクラスを使用します。

ToolStripProgressBarクラスの使用方法は、ProgressBarコントロールの使用方法と変わりません。

ProgressBarコントロールTipsは、過去記事の[Tips][ProgressBar] まとめを参照ください。

下記はToolStripにプログレスバーを表示する例です。

VBの例

'ToolStripに追加するプログレスバー
Private progressBar As New ToolStripProgressBar

' フォームロード時の処理
Private Sub Form8_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    'ToolStripにプログレスバーを追加
    ToolStrip1.Items.Add(progressBar)
End Sub

' タイマー間隔経過時の処理
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
    If progressBar.Value < 100 Then
        'プログレスバーを進捗させる
        progressBar.PerformStep()
    Else
        'タイマーを停止する
        Timer1.Stop()
    End If
End Sub

' [Strat]ボタンクリック時の処理
Private Sub btnStart_Click(sender As System.Object, e As System.EventArgs) Handles btnStart.Click
    'プログレスバーの値を0にする
    progressBar.Value = 0

    'タイマーを開始する
    Timer1.Start()
End Sub

C#の例

// ToolStripに追加するテキストボックス
private ToolStripProgressBar progressBar = new ToolStripProgressBar();

// フォームロード時の処理
private void Form8_Load(object sender, EventArgs e)
{
    // ToolStripにプログレスバーを追加
    toolStrip1.Items.Add(progressBar);
}

// タイマー間隔経過時の処理
private void timer1_Tick(object sender, EventArgs e)
{
    if (progressBar.Value < 100)
    {
        // プログレスバーを進捗させる
        progressBar.PerformStep();
    }
    else
    {
        // タイマーを停止する
        timer1.Stop();
    }
}

// [Start]ボタンクリック時の処理  
private void btnStart_Click(object sender, EventArgs e)
{
    // プログレスバーの値を0にする
    progressBar.Value = 0;

    // タイマーを開始する
    timer1.Start();
}

[ToolStrip][Tips] テキストボックスを表示する

ToolStripコントロールにテキストボックスを表示するにはToolStripTextBoxクラスを使用します。

下記はテキストボックスを使用する例です。

フォーカスを受け取ったときは背景を黄色に、フォーカスを失ったときは背景を白にするイベントを追加しています。

VBの例

'ToolStripに追加するテキストボックス
Dim textBox1 As New ToolStripTextBox

' フォームロード時の処理
Private Sub Form7_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    'イベントの登録
    AddHandler textBox1.GotFocus, AddressOf TextBox_GotFocus
    AddHandler textBox1.LostFocus, AddressOf TextBox_LostFocus

    'ToolStripにテキストボックスを追加
    ToolStrip1.Items.Add(textBox1)
End Sub

' フォーカスを受け取ったときの処理
Private Sub TextBox_GotFocus(sender As Object, e As EventArgs)
    'テキストボックスの背景を黄色にする
    textBox1.BackColor = Color.Yellow
End Sub

' フォーカスを失ったときの処理
Private Sub TextBox_LostFocus(sender As Object, e As EventArgs)
    'テキストボックスの背景を白にする
    textBox1.BackColor = Color.White
End Sub

C#の例

// ToolStripに追加するテキストボックス
private ToolStripTextBox textBox1 = new ToolStripTextBox();

// フォームロード時の処理
private void Form7_Load(object sender, EventArgs e)
{
    //イベントの登録
    textBox1.GotFocus += new EventHandler(TextBox_GotFocus);
    textBox1.LostFocus += new EventHandler(TextBox_LostFocus);

    // ToolStripにテキストボックスを追加
    toolStrip1.Items.Add(textBox1);
}

// フォーカスを受け取ったときの処理
private void TextBox_GotFocus(object sender, EventArgs e)
{
    // テキストボックスの背景を黄色にする
    textBox1.BackColor = Color.Yellow;
}

// フォーカスを失ったときの処理
private void TextBox_LostFocus(object sender, EventArgs e)
{
    // テキストボックスの背景を白にする
    textBox1.BackColor = Color.White;
}

[ToolStrip][Tips] コンボボックスを表示する

ToolStripコントロールにコンボボックスを表示するにはToolStripComboBoxクラスを使用します。

下記はコンボボックスを使用する例です。

VBの例

' フォームロード時の処理
Private Sub Form6_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    Dim comboBoxFruits As New ToolStripComboBox

    comboBoxFruits.Items.Add("リンゴ")
    comboBoxFruits.Items.Add("ミカン")
    comboBoxFruits.Items.Add("バナナ")

    'ToolStripにコンボボックスを追加
    ToolStrip1.Items.Add(comboBoxFruits)
End Sub

C#の例

// フォームロード時の処理
private void Form6_Load(object sender, EventArgs e)
{
    ToolStripComboBox comboBoxFruits = new ToolStripComboBox();

    comboBoxFruits.Items.Add("リンゴ");
    comboBoxFruits.Items.Add("ミカン");
    comboBoxFruits.Items.Add("バナナ");

    // ToolStripにコンボボックスを追加
    toolStrip1.Items.Add(comboBoxFruits);
}

[ToolStrip][Tips] セパレーターを追加する

ToolStripコントロールにセパレーターを表示するにはToolStripSeparatorクラスを使用します。

下記はセパレーターを使用する例です。

VBの例

' フォームロード時の処理
Private Sub Form5_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    Dim cutButton As New ToolStripButton
    Dim copyButton As New ToolStripButton
    Dim pasteButton As New ToolStripButton
    Dim undoButton As New ToolStripButton
    Dim redoButton As New ToolStripButton

    '表示するボタンの設定
    cutButton.Image = Image.FromFile("C:\Work\CutHS.bmp")
    cutButton.ImageTransparentColor = Color.Black
    cutButton.ToolTipText = "切り取り"
    copyButton.Image = Image.FromFile("C:\Work\CopyHS.bmp")
    copyButton.ImageTransparentColor = Color.Black
    copyButton.ToolTipText = "コピー"
    pasteButton.Image = Image.FromFile("C:\Work\PasteHS.bmp")
    pasteButton.ImageTransparentColor = Color.Black
    pasteButton.ToolTipText = "貼り付け"
    undoButton.Image = Image.FromFile("C:\Work\Edit_UndoHS.png")
    undoButton.ImageTransparentColor = Color.White
    undoButton.ToolTipText = "元に戻す"
    redoButton.Image = Image.FromFile("C:\Work\Edit_RedoHS.png")
    redoButton.ImageTransparentColor = Color.White
    redoButton.ToolTipText = "やり直し"

    'ボタンとセパレーターをToolStripに追加
    ToolStrip1.Items.Add(cutButton)
    ToolStrip1.Items.Add(copyButton)
    ToolStrip1.Items.Add(pasteButton)
    ToolStrip1.Items.Add(New ToolStripSeparator)    '★★★セパレーターを追加★★★
    ToolStrip1.Items.Add(undoButton)
    ToolStrip1.Items.Add(redoButton)
End Sub

C#の例

// フォームロード時の処理
private void Form5_Load(object sender, EventArgs e)
{
    ToolStripButton cutButton = new ToolStripButton();
    ToolStripButton copyButton = new ToolStripButton();
    ToolStripButton pasteButton = new ToolStripButton();
    ToolStripButton undoButton = new ToolStripButton();
    ToolStripButton redoButton = new ToolStripButton();

    // 表示するボタンの設定
    cutButton.Image = Image.FromFile(@"C:\Work\CutHS.bmp");
    cutButton.ImageTransparentColor = Color.Black;
    cutButton.ToolTipText = "切り取り";
    copyButton.Image = Image.FromFile(@"C:\Work\CopyHS.bmp");
    copyButton.ImageTransparentColor = Color.Black;
    copyButton.ToolTipText = "コピー";
    pasteButton.Image = Image.FromFile(@"C:\Work\PasteHS.bmp");
    pasteButton.ImageTransparentColor = Color.Black;
    pasteButton.ToolTipText = "貼り付け";
    undoButton.Image = Image.FromFile(@"C:\Work\Edit_UndoHS.png");
    undoButton.ImageTransparentColor = Color.White;
    undoButton.ToolTipText = "元に戻す";
    redoButton.Image = Image.FromFile(@"C:\Work\Edit_RedoHS.png");
    redoButton.ImageTransparentColor = Color.White;
    redoButton.ToolTipText = "やり直し";

    // ラベルとボタンをtoolStripに追加
    toolStrip1.Items.Add(cutButton);
    toolStrip1.Items.Add(copyButton);
    toolStrip1.Items.Add(pasteButton);
    toolStrip1.Items.Add(new ToolStripSeparator());   // ★★★セパレーターを追加★★★
    toolStrip1.Items.Add(undoButton);
    toolStrip1.Items.Add(redoButton);
}

[ToolStrip][Tips] ドロップダウンボタンを表示する

ToolStripコントロールにドロップダウンボタンを表示するにはToolStripDownButtonクラスを使用します。

ドロップダウンボタンに表示する項目はDropDownItemsプロパティAddメソッドで追加します。

下記は[ファイル]というドロップダウンボタンに[新規作成]と[開く]という項目(ToolStripMenuItem)を追加する例です。

' フォームロード時の処理
Private Sub Form4_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    Dim item As New ToolStripDropDownButton
    item.Text = "ファイル(&F)"

    Dim newItem As New ToolStripMenuItem
    newItem.Text = "新規作成(&N)"                           '表示するテキスト
    newItem.Image = New Bitmap("C:\Work\NewDocumentHS.bmp")    '表示するイメージ
    newItem.ImageTransparentColor = Color.Black                'イメージの透過色

    Dim openItem As New ToolStripMenuItem
    openItem.Text = "開く(&O)..."                               '表示するテキスト
    openItem.Image = New Bitmap("C:\Work\openfolderHS.bmp")     '表示するイメージ
    openItem.ImageTransparentColor = Color.Black                'イメージの透過色

    item.DropDownItems.Add(newItem)
    item.DropDownItems.Add(openItem)

    'イベントの登録
    AddHandler newItem.Click, AddressOf MenuFileNew_Click
    AddHandler openItem.Click, AddressOf MenuFileOpen_Click

    'ToolSripへ追加
    ToolStrip1.Items.Add(item)
End Sub

' [新規作成]クリック時の処理
Private Sub MenuFileNew_Click(sender As Object, e As EventArgs)
    MessageBox.Show("[新規作成]がクリックされました")
End Sub

' [開く]クリック時の処理
Private Sub MenuFileOpen_Click(sender As Object, e As EventArgs)
    MessageBox.Show("[開く]がクリックされました")
End Sub
// フォームロード時の処理
private void Form4_Load(object sender, EventArgs e)
{
    ToolStripDropDownButton item = new ToolStripDropDownButton();
    //表示するテキスト
    item.Text = "ファイル(&F)";

    ToolStripMenuItem newItem = new ToolStripMenuItem();
    newItem.Text = "新規作成(&N)";                              //表示するテキスト
    newItem.Image = new Bitmap(@"C:\Work\NewDocumentHS.bmp");   //表示するイメージ
    newItem.ImageTransparentColor = Color.Black;                //イメージの透過色

    ToolStripMenuItem openItem = new ToolStripMenuItem();
    openItem.Text = "開く(&O)...";                              //表示するテキスト
    openItem.Image = new Bitmap(@"C:\Work\openfolderHS.bmp");   //表示するイメージ
    openItem.ImageTransparentColor = Color.Black;               //イメージの透過色

    item.DropDownItems.Add(newItem);
    item.DropDownItems.Add(openItem);

    //イベントの登録
    newItem.Click += new EventHandler(MenuFileNew_Click);
    openItem.Click += new EventHandler(MenuFileOpen_Click);

    //ToolSripへ追加
    toolStrip1.Items.Add(item);
}

// [新規作成]クリック時の処理
private void MenuFileNew_Click(object sender, EventArgs e)
{
    MessageBox.Show("[新規作成]がクリックされました");
}

// [開く]クリック時の処理
private void MenuFileOpen_Click(object sender, EventArgs e)
{
    MessageBox.Show("[開く]がクリックされました");
}