StatusStrip
[StatusStrip][Tips] ボーダースタイルを設定する
0StatusStripコントロールに追加した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] スプリットボタンを表示する
0StatusStripにスプリットボタンを表示するには、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] ドロップダウンボタンを表示する
0StatusStripにドロップダウンボタンを表示するには、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] プログレスバーを表示する
0StatusStripにプログレスバーを表示するには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] テキストを表示する
0StatusStripにテキストを表示するには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); }