[StatusStrip][Tips] ボーダースタイルを設定する

StatusStripコントロールに追加したToolStripStatusLabelはボーダースタイルを変更することができます。

まず、ボーダーを4辺のどこに表示するのかをBorderSidesプロパティで設定し、BorderStyleプロパティでボーダースタイルを設定します。

BorderSidesプロパティではボーダーを上だけに表示したり、4辺すべてに表示するといった設定ができます。

また、BorderStyleプロパティでは窪んだように見せたり浮き出たり見えるように設定することが可能です。

下記は、ボーダースタイルを設定する例です。

VBの例

' フォームロード時の処理
Private Sub Form5_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    '境界線を四辺に表示する
    ToolStripStatusLabel1.BorderSides = ToolStripStatusLabelBorderSides.All
End Sub

' ボーダースタイル変更処理
Private Sub rdoAdjust_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles rdoSunkenOuter.CheckedChanged, rdoSunkenInner.CheckedChanged, rdoSunken.CheckedChanged, rdoRaisedOuter.CheckedChanged, rdoRaisedInner.CheckedChanged, rdoRaised.CheckedChanged, rdoFlat.CheckedChanged, rdoEtched.CheckedChanged, rdoBump.CheckedChanged, rdoAdjust.CheckedChanged
    If rdoAdjust.Checked = True Then
        ToolStripStatusLabel1.BorderStyle = Border3DStyle.Adjust
        ToolStripStatusLabel1.Text = "Adjust"
    ElseIf rdoBump.Checked = True Then
        ToolStripStatusLabel1.BorderStyle = Border3DStyle.Bump
        ToolStripStatusLabel1.Text = "Bump"
    ElseIf rdoEtched.Checked = True Then
        ToolStripStatusLabel1.BorderStyle = Border3DStyle.Etched
        ToolStripStatusLabel1.Text = "Etched"
    ElseIf rdoFlat.Checked = True Then
        ToolStripStatusLabel1.BorderStyle = Border3DStyle.Flat
        ToolStripStatusLabel1.Text = "Flat"
    ElseIf rdoRaised.Checked = True Then
        ToolStripStatusLabel1.BorderStyle = Border3DStyle.Raised
        ToolStripStatusLabel1.Text = "Raised"
    ElseIf rdoRaisedInner.Checked = True Then
        ToolStripStatusLabel1.BorderStyle = Border3DStyle.RaisedInner
        ToolStripStatusLabel1.Text = "RaisedInner"
    ElseIf rdoRaisedOuter.Checked = True Then
        ToolStripStatusLabel1.BorderStyle = Border3DStyle.RaisedOuter
        ToolStripStatusLabel1.Text = "RaisedOuter"
    ElseIf rdoSunken.Checked = True Then
        ToolStripStatusLabel1.BorderStyle = Border3DStyle.Sunken
        ToolStripStatusLabel1.Text = "Sunken"
    ElseIf rdoSunkenInner.Checked = True Then
        ToolStripStatusLabel1.BorderStyle = Border3DStyle.SunkenInner
        ToolStripStatusLabel1.Text = "SunkenInner"
    ElseIf rdoSunkenOuter.Checked = True Then
        ToolStripStatusLabel1.BorderStyle = Border3DStyle.SunkenOuter
        ToolStripStatusLabel1.Text = "SunkenOuter"
    End If
End Sub

C#の例

// フォームロード時の処理
private void Form5_Load(object sender, EventArgs e)
{
    // 境界線を四辺に表示する
    toolStripStatusLabel1.BorderSides = ToolStripStatusLabelBorderSides.All;
}

// ボーダースタイル変更処理
private void rdoAdjust_CheckedChanged(object sender, EventArgs e)
{
    if (rdoAdjust.Checked == true)
    {
        toolStripStatusLabel1.BorderStyle = Border3DStyle.Adjust;
        toolStripStatusLabel1.Text = "Adjust";
    }
    else if (rdoBump.Checked == true)
    {
        toolStripStatusLabel1.BorderStyle = Border3DStyle.Bump;
        toolStripStatusLabel1.Text = "Bump";
    }
    else if (rdoEtched.Checked == true)
    {
        toolStripStatusLabel1.BorderStyle = Border3DStyle.Etched;
        toolStripStatusLabel1.Text = "Etched";
    }
    else if (rdoFlat.Checked == true)
    {
        toolStripStatusLabel1.BorderStyle = Border3DStyle.Flat;
        toolStripStatusLabel1.Text = "Flat";
    }
    else if (rdoRaised.Checked == true)
    {
        toolStripStatusLabel1.BorderStyle = Border3DStyle.Raised;
        toolStripStatusLabel1.Text = "Raised";
    }
    else if (rdoRaisedInner.Checked == true)
    {
        toolStripStatusLabel1.BorderStyle = Border3DStyle.RaisedInner;
        toolStripStatusLabel1.Text = "RaisedInner";
    }
    else if (rdoRaisedOuter.Checked == true)
    {
        toolStripStatusLabel1.BorderStyle = Border3DStyle.RaisedOuter;
        toolStripStatusLabel1.Text = "RaisedOuter";
    }
    else if (rdoSunken.Checked == true)
    {
        toolStripStatusLabel1.BorderStyle = Border3DStyle.Sunken;
        toolStripStatusLabel1.Text = "Sunken";
    }
    else if (rdoSunkenInner.Checked == true)
    {
        toolStripStatusLabel1.BorderStyle = Border3DStyle.SunkenInner;
        toolStripStatusLabel1.Text = "SunkenInner";
    }
    else if (rdoSunkenOuter.Checked == true)
    {
        toolStripStatusLabel1.BorderStyle = Border3DStyle.SunkenOuter;
        toolStripStatusLabel1.Text = "SunkenOuter";
    }
}

[StatusStrip][Tips] スプリットボタンを表示する

StatusStripにスプリットボタンを表示するには、ToolStripSplitButtonを使用します。

ToolStripSplitButtonにはTextプロパティを使用すればテキストを、Imageプロパティを使用すればイメージを表示することができます。

またDropDownItemsプロパティAddメソッドを使用して項目を追加すれば、ドロップダウンボタンとしても使用可能です。

下記は、スプリットボタンを使用する例です。

「新規」を表すイメージを表示したボタンと、”Caps”と書かれたボタンの2つのスプリットボタンを追加しています。

VBの例

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

    '[新規]ボタンの作成
    newButton.ImageTransparentColor = Color.Black
    newButton.Image = Image.FromFile("C:\Work\NewDocumentHS.bmp")

    '[Caps]ボタンの作成
    capsButton.Text = "Caps"

    'StatusStripに[新規]ボタンと[Caps]ボタンを追加
    StatusStrip1.Items.Add(newButton)
    StatusStrip1.Items.Add(capsButton)
End Sub

C#の例

// フォームロード時の処理
private void Form4_Load(object sender, EventArgs e)
{
    ToolStripSplitButton capsButton = new ToolStripSplitButton();
    ToolStripSplitButton newButton = new ToolStripSplitButton();

    // [新規]ボタンの作成
    newButton.ImageTransparentColor = Color.Black;
    newButton.Image = Image.FromFile(@"C:\Work\NewDocumentHS.bmp");

    // [Caps]ボタンの作成
    capsButton.Text = "Caps";

    // StatusStripに[新規]ボタンと[Caps]ボタンを追加
    statusStrip1.Items.Add(newButton);
    statusStrip1.Items.Add(capsButton);
}

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


StatusStripにドロップダウンボタンを表示するには、ToolStripDropDownButtonを使用します。

アイテムはDropDownItemsプロパティAddメソッドで追加します。

下記はStatusStripにドロップダウンボタンを表示する例です。

VBの例

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

    'アイテムの追加
    dropDownButton.DropDownItems.Add("コピー(&C)")
    dropDownButton.DropDownItems.Add("切り取り(&X)")
    dropDownButton.DropDownItems.Add("貼り付け(&P)")

    dropDownButton.Text = "編集"      'テキストの設定
    dropDownButton.AutoSize = False   'ToolStripDropDownButtonの幅を任意の値に変更できるようにする
    dropDownButton.Width = 70         'ToolStripDropDownButtonの幅を70にする

    StatusStrip1.Items.Add(dropDownButton)
End Sub

C#の例

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

    // アイテムの追加
    dropDownButton.DropDownItems.Add("コピー(&C)");
    dropDownButton.DropDownItems.Add("切り取り(&X)");
    dropDownButton.DropDownItems.Add("貼り付け(&P)");

    dropDownButton.Text = "編集";     // テキストの設定
    dropDownButton.AutoSize = false;  // ToolStripDropDownButtonの幅を任意の値に変更できるようにする
    dropDownButton.Width = 70;        // ToolStripDropDownButtonの幅を70にする

    statusStrip1.Items.Add(dropDownButton);
}

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


StatusStripにプログレスバーを表示するにはToolStripProgressBarを作成して追加します。

ToolStripProgressBarの使用方法はProgeressBarコントロールと同様です(過去に紹介した記事を参照ください)。

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

[Timerスタート]ボタンをクリックするとプログレスバーが進捗します。

VBの例

Private progressBar As New ToolStripProgressBar

' フォームロード時の処理
Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    progressBar.Width = 200     'プログレスバーの幅の設定
    progressBar.Minimum = 0     '最小値の設定
    progressBar.Maximum = 100   '最大値の設定
    progressBar.Value = 0       '現在値の設定
    progressBar.Step = 1        'PerformStepメソッドで進捗する量

    'StatusStripにプログレスバーを追加
    StatusStrip1.Items.Add(progressBar)
End Sub

' [Timerスタート]ボタンクリック時の処理
Private Sub btnStartTimer_Click(sender As System.Object, e As System.EventArgs) Handles btnStartTimer.Click
    progressBar.Value = 0
    Timer1.Start()
End Sub

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

C#の例

private ToolStripProgressBar progressBar = new ToolStripProgressBar();

// フォームロード時の処理
private void Form2_Load(object sender, EventArgs e)
{
    progressBar.Width = 200;    // プログレスバーの幅の設定
    progressBar.Minimum = 0;    // 最小値の設定
    progressBar.Maximum = 100;  // 最大値の設定
    progressBar.Value = 0;      // 現在値の設定
    progressBar.Step = 1;       // PerformStepメソッドで進捗する量

    // StatusStripにプログレスバーを追加
    statusStrip1.Items.Add(progressBar);
}

// [Timerスタート]ボタンクリック時の処理
private void btnStartTimer_Click(object sender, EventArgs e)
{
    progressBar.Value = 0;
    timer1.Start();
}

// タイマー間隔経過時の処理
private void timer1_Tick(object sender, EventArgs e)
{
    // 進捗が100未満の場合
    if (progressBar.Value < 100)
    {
        // 値を進捗させる
        progressBar.PerformStep();
    }
    else
    {
        // タイマーを停止する
        timer1.Stop();
    }
}

[StatusStrip][Tips] テキストを表示する


StatusStripにテキストを表示するにはToolStripStatusLabelを作成して追加します。

ToolStripStatusLabelはTextプロパティで表示するテキストを、TextAlignmentプロパティでテキストの表示位置を、Widthプロパティでラベルの幅を設定します。

またSpringプロパティをTrueにすると、ラベルがStatusStripの幅いっぱいに表示されます。

下記はStatusStripにテキストを表示する例です。

VBの例

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

    '1つめのテキスト設定
    label1.Text = "テキストを表示します"                '表示するテキストの設定
    label1.TextAlign = ContentAlignment.MiddleLeft      '左揃えで表示
    label1.Width = 200                                  '表示幅を200にする

    '2つめのテキスト設定
    label2.Text = DateTime.Now.ToShortDateString        '表示するテキストを設定(今日を表示)
    label2.TextAlign = ContentAlignment.MiddleRight     '右寄せで表示
    label2.Spring = True                                'StatusStripの幅いっぱいに表示

    '上記で設定したテキストをStatusStripに追加
    StatusStrip1.Items.Add(label1)
    StatusStrip1.Items.Add(label2)
End Sub

C#の例

// フォームロード時の処理
private void Form1_Load(object sender, EventArgs e)
{
    ToolStripStatusLabel label1 = new ToolStripStatusLabel();
    ToolStripStatusLabel label2 = new ToolStripStatusLabel();

    // 1つめのテキスト設定
    label1.Text = "テキストを表示します";             // 表示するテキストの設定
    label1.TextAlign = ContentAlignment.MiddleLeft;   // 左揃えで表示
    label1.Width = 200;                               // 表示幅を200にする

    // 2つめのテキスト設定
    label2.Text = DateTime.Now.ToShortDateString();   // 表示するテキストを設定(今日を表示)
    label2.TextAlign = ContentAlignment.MiddleRight;  // 右寄せで表示
    label2.Spring = true;                             // StatusStripの幅いっぱいに表示

    // 上記で設定したテキストをStatusStripに追加
    statusStrip1.Items.Add(label1);
    statusStrip1.Items.Add(label2);
}