前回に引き続き、ツールバーの土台になるToolStripの上に乗せることができるコントロールを紹介していきます。
コンボボックス(ToolStripComboBox)
コンボボックスは、テキストボックスとドロップダウンリストによるコントロールで、右の矢印ボタンをクリックすると、ドロップダウンリストが表示されるという動きは ToolStripSplitButton や ToolStripDropDownButton と同じです。
サンプルは、下記のようになります。
private System.Windows.Forms.ToolStrip toolStrip1; // ツールバーの土台となるオブジェクト
private System.Windows.Forms.ToolStripButton toolStripButton1; // ツールバーのボタン1
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; // ツールバーのセパレータ
private System.Windows.Forms.ToolStripComboBox toolStripComboBox1; // ツールバーのコンボボックス
private void frmMain_Load(object sender, EventArgs e)
{
// フォームをロードした時の処理
// レイアウトを一時停止
this.SuspendLayout();
// ToolStripクラスを生成します
this.toolStrip1 = new ToolStrip();
// ツールバーのレイアウトを一時停止
this.toolStrip1.SuspendLayout();
//
// ツールバーの中に追加するコントロールを生成する
// ここから --->
// ToolStripButtonを作成
this.toolStripButton1 = new ToolStripButton();
// テキストを設定
this.toolStripButton1.Text = "開く(&O)";
// 画像を設定
this.toolStripButton1.Image = Image.FromFile(@"btn_open.gif");
// 画像だけを表示するボタンにします
this.toolStripButton1.DisplayStyle = ToolStripItemDisplayStyle.Image;
// ToolStripにボタンを追加します
this.toolStrip1.Items.Add(this.toolStripButton1);
// ToolStripSeparatorを作成
this.toolStripSeparator1 = new ToolStripSeparator();
// ToolStripにセパレータを追加します
this.toolStrip1.Items.Add(this.toolStripSeparator1);
// ToolStripDropDownButtonを作成する
this.toolStripComboBox1 = new ToolStripComboBox("コンボ");
// ドロップダウンのリストを用意します
this.toolStripComboBox1.Items.Add("選択肢1");
this.toolStripComboBox1.Items.Add("選択肢2");
this.toolStripComboBox1.Items.Add("選択肢3");
// ToolStripにコンボボックスを追加します
this.toolStrip1.Items.Add(this.toolStripComboBox1);
// フォームにToolStrip(ツールバー)を追加
this.Controls.Add(this.toolStrip1);
// ---> ここまで
// ツールバーの中に追加するコントロールを生成する
//
// ツールバーのレイアウトを再開
this.toolStrip1.ResumeLayout(false);
this.toolStrip1.PerformLayout();
// レイアウトを再開
this.ResumeLayout(false);
this.PerformLayout();
}
テキストボックス(ToolStripTextBox)
その名の通り、テキストボックスです。
サンプルは、下記のようになります。
private System.Windows.Forms.ToolStrip toolStrip1; // ツールバーの土台となるオブジェクト
private System.Windows.Forms.ToolStripButton toolStripButton1; // ツールバーのボタン1
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; // ツールバーのセパレータ
private System.Windows.Forms.ToolStripTextBox toolStripTextBox1; // ツールバーのテキストボックス
private void frmMain_Load(object sender, EventArgs e)
{
// フォームをロードした時の処理
// レイアウトを一時停止
this.SuspendLayout();
// ToolStripクラスを生成します
this.toolStrip1 = new ToolStrip();
// ツールバーのレイアウトを一時停止
this.toolStrip1.SuspendLayout();
//
// ツールバーの中に追加するコントロールを生成する
// ここから --->
// ToolStripButtonを作成
this.toolStripButton1 = new ToolStripButton();
// テキストを設定
this.toolStripButton1.Text = "開く(&O)";
// 画像を設定
this.toolStripButton1.Image = Image.FromFile(@"btn_open.gif");
// 画像だけを表示するボタンにします
this.toolStripButton1.DisplayStyle = ToolStripItemDisplayStyle.Image;
// ToolStripにボタンを追加します
this.toolStrip1.Items.Add(this.toolStripButton1);
// ToolStripSeparatorを作成
this.toolStripSeparator1 = new ToolStripSeparator();
// ToolStripにセパレータを追加します
this.toolStrip1.Items.Add(this.toolStripSeparator1);
// ToolStripTextBoxを作成する
//this.toolStripTextBox1 = new ToolStripTextBox("テキスト"); // <--こうやっても初期表示でテキストと表示されません
this.toolStripTextBox1 = new ToolStripTextBox();
toolStripTextBox1.Text = "てきすと";
// ToolStripにコンボボックスを追加します
this.toolStrip1.Items.Add(this.toolStripTextBox1);
// フォームにToolStrip(ツールバー)を追加
this.Controls.Add(this.toolStrip1);
// ---> ここまで
// ツールバーの中に追加するコントロールを生成する
//
// ツールバーのレイアウトを再開
this.toolStrip1.ResumeLayout(false);
this.toolStrip1.PerformLayout();
// レイアウトを再開
this.ResumeLayout(false);
this.PerformLayout();
}
このサンプルにはコメントアウトされている部分があります。
これは、コンストラクタの引数に文字列が渡せるので、渡してみたときのコードです。
下記のように変更して実行しても、コメントに書いてあるとおり、テキストボックスは「空」の状態で表示されます。
this.toolStripTextBox1 = new ToolStripTextBox("テキスト"); // <--こうやっても初期表示でテキストと表示されません
//this.toolStripTextBox1 = new ToolStripTextBox();
//toolStripTextBox1.Text = "てきすと";
プログレスバー(ToolStripProgressBar)
ツールバー内にプログレスバーを表示させることができます。
処理の進捗状況やパフォーマンスを表示するときなどに使えそうです
サンプルは、下記のようになります。
private System.Windows.Forms.ToolStrip toolStrip1; // ツールバーの土台となるオブジェクト
private System.Windows.Forms.ToolStripButton toolStripButton1; // ツールバーのボタン1
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; // ツールバーのセパレータ
private System.Windows.Forms.ToolStripProgressBar toolStripProgressBar1; // ツールバーのプログレスバー
private void frmMain_Load(object sender, EventArgs e)
{
// フォームをロードした時の処理
// レイアウトを一時停止
this.SuspendLayout();
// ToolStripクラスを生成します
this.toolStrip1 = new ToolStrip();
// ツールバーのレイアウトを一時停止
this.toolStrip1.SuspendLayout();
//
// ツールバーの中に追加するコントロールを生成する
// ここから --->
// ToolStripButtonを作成
this.toolStripButton1 = new ToolStripButton();
// テキストを設定
this.toolStripButton1.Text = "開く(&O)";
// 画像を設定
this.toolStripButton1.Image = Image.FromFile(@"btn_open.gif");
// 画像だけを表示するボタンにします
this.toolStripButton1.DisplayStyle = ToolStripItemDisplayStyle.Image;
// ToolStripにボタンを追加します
this.toolStrip1.Items.Add(this.toolStripButton1);
// ToolStripSeparatorを作成
this.toolStripSeparator1 = new ToolStripSeparator();
// ToolStripにセパレータを追加します
this.toolStrip1.Items.Add(this.toolStripSeparator1);
// ToolStripProgressBarを作成する
this.toolStripProgressBar1 = new ToolStripProgressBar();
toolStripProgressBar1.ToolTipText = "プログレスバー";
toolStripProgressBar1.Minimum = 0;
toolStripProgressBar1.Maximum = 100;
toolStripProgressBar1.Value = 25;
// ToolStripにプログレスバーを追加します
this.toolStrip1.Items.Add(this.toolStripProgressBar1);
// フォームにToolStrip(ツールバー)を追加
this.Controls.Add(this.toolStrip1);
// ---> ここまで
// ツールバーの中に追加するコントロールを生成する
//
// ツールバーのレイアウトを再開
this.toolStrip1.ResumeLayout(false);
this.toolStrip1.PerformLayout();
// レイアウトを再開
this.ResumeLayout(false);
this.PerformLayout();
}
意外なのですが、このToolStripProgressBarクラスにはTextプロパティはありません。コントロールそのもので文字列を表示できるのはToolTipTextプロパティです。
このプログレスバーと合わせて文字列を表示するには前回紹介した「ToolStripLabel」と組み合わせて使うことになります。


