前回に引き続き、ツールバーの土台になる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」と組み合わせて使うことになります。