ToolStrip テクノロジの概要

ここでは、ToolStrip コントロールおよびその使用をサポートしているクラスの概要について説明します。

ToolStrip コントロールとその関連クラスは、ツール バー、ステータス バー、メニューを作成するための完全なソリューションを提供します。

名前空間

System.Windows.Forms

バックグラウンド

ToolStrip コントロールと関連クラスを使用すると、外観と動作に一貫性がある、プロフェッショナル レベルの高度なツール バー機能を作成できます。 ToolStrip コントロールとクラスでは、以前のコントロールから次の点が改善されました。

  • より一貫性のあるイベント モデル。

  • タスク一覧と項目コレクション エディターを含む、より一貫性のあるデザイン時動作。

  • ToolStripManagerToolStripRenderer を使用したカスタム描画。

  • ToolStripContainerToolStripPanel を使用したビルトイン ラフティング (ドッキング時にツール領域内の水平スペースと垂直スペースを共有すること)。

  • AllowItemReorder プロパティを使用した、デザイン時および実行時の項目の並べ替え。

  • CanOverflow プロパティを使用した、オーバーフロー メニューへの項目の再配置。

  • ToolStripContainerToolStripPanelToolStripContentPanel を使用した、自由に構成可能なコントロール位置。

  • ToolStripControlHost を使用した、ToolStrip、従来のコントロール、またはカスタム コントロールのホスト。

  • ToolStripPanel を使用した ToolStrip コントロールのマージ。

ToolStrip は、MenuStripContextMenuStripStatusStrip の拡張可能な基底クラスです。 これらのコントロールは、共通の動作とイベント処理を継承する ToolStripItem コンテナーで、それぞれの実装で適切な動作を処理できるように拡張されています。 ToolStripItem から派生するコントロールについて、次の表に示します。 ToolStrip 基底クラスでは、コントロールの描画、ユーザー入力、ドラッグ アンド ドロップの各イベントを処理します。

ToolStripMenuStripContextMenuStripStatusStrip の各コントロールは、以前のツール バー、メニュー、ショートカット メニュー、ステータス バーの各コントロールに置き換わるものです。ただし、これらのコントロールも下位互換性の目的で保持されています。

ToolStrip のクラスの概要

テクノロジ分野でグループ化した ToolStrip クラスを次の表に示します。

テクノロジ分野 クラス
ツール バー、ステータス、メニューのコンテナー ToolStrip

MenuStrip

ContextMenuStrip

StatusStrip

ToolStripDropDownMenu
ToolStrip 項目 ToolStripLabel

ToolStripDropDownItem

ToolStripMenuItem

ToolStripButton

ToolStripStatusLabel

ToolStripSeparator

ToolStripControlHost

ToolStripComboBox

ToolStripTextBox

ToolStripProgressBar

ToolStripDropDownButton

ToolStripSplitButton
場所 ToolStripContainer

ToolStripContentPanel

ToolStripPanel
プレゼンテーションと描画 ToolStripManager

ToolStripRenderer

ToolStripProfessionalRenderer

ToolStripRenderMode

ToolStripManagerRenderMode

ToolStrip のデザイン時機能

ToolStrip ファミリのコントロールには、実用的なアプリケーションを短期間で作成できるように、埋め込み先での編集とユーザー インターフェイスの基盤の定義を行うための豊富なツールとテンプレートのセットが用意されています。

タスク ダイアログ ボックス

Visual Studio のデザイナーでコントロールのスマート タグをクリックすると、タスク一覧が表示されます。タスク一覧からは、よく使用する多くのコマンドに簡単にアクセスできます。

項目コレクション エディター

Visual Studio で、タスク一覧の [項目の編集] をクリックするか、コントロールを右クリックしてショートカット メニューの [項目の編集] を選択すると、そのコントロールのコレクション エディターが表示されます。 コレクション エディターを使用すると、コントロールに含まれる項目の追加、削除、並べ替えを行うことができます。 また、コントロールとコントロール項目のプロパティを表示および変更することもできます。

コントロールのホスト

ToolStripControlHost クラスは、ToolStripComboBox コントロール、ToolStripTextBox コントロール、ToolStripProgressBar コントロールのためのビルトイン ラッパーを提供します。 その他の既存のコントロールまたは COM コントロールを ToolStripControlHost でホストすることもできます。

コントロールをホストする方法の例については、「方法: ToolStripControlHost を使用して Windows フォーム コントロールをラップする」を参照してください。

表示

ToolStrip クラスでは、他の Windows フォーム コントロールとは大きく異なる描画スキームを実装します。 このスキームを使用すると、スタイルとテーマを簡単に適用できます。

ToolStrip とそこに含まれるすべての ToolStripItem オブジェクトにスタイルを適用する場合、Paint イベントを項目ごとに処理する必要はありません。 代わりに、RenderMode プロパティを ToolStripRenderMode 値のいずれかに設定できます (Custom を除きます)。 さらに別の方法として、ToolStripRenderer クラスを継承する任意のクラスに Renderer を直接設定することもできます。 このプロパティを設定すると、RenderMode が自動的に設定されます。

RenderModeManagerRenderMode に設定し、RenderMode または Renderer プロパティをそれぞれ任意の ToolStripManagerRenderMode または ToolStripRenderer 値に設定すると、同じアプリケーション内の複数の ToolStrip オブジェクトに同じスタイルを適用できます。

レンダリングの例については、「方法: Windows フォームに ToolStrip コントロールのカスタム レンダラーを作成して設定する」を参照してください。

スタイルとテーマ

ToolStrip とその関連クラスは、表示スタイルとカスタムの外観を容易にサポートします。この場合、OnPaint メソッドを項目ごとにオーバーライドする必要はありません。 DisplayStyle と、RenderMode プロパティおよび Renderer プロパティを使用します。

ラフティングとドッキング

ToolStrip コントロールは、ラフティング、ドッキング、または絶対位置を指定して配置できます。 ToolStrip 項目は、コンテナーの LayoutEngine によってレイアウトされます。

"ラフト操作" は、水平スペースまたは垂直スペースを共有するためのツール バーの機能です。 Windows フォームでは、ToolStripMenuStripStatusStrip の各コントロールの配置とラフティングを行うときに、フォームの左側、右側、上側、下側にパネルを持つ ToolStripContainer を使用できます。 複数の ToolStrip コントロールを左右の ToolStripContainer に配置すると、コントロールは垂直方向に積み重ねられます。 上または下の ToolStripContainer に配置すると、コントロールは水平方向に積み重ねられます。 ToolStripContainer の中央の ToolStripContentPanel を使用すると、従来のコントロールをフォーム上に配置できます。

一部または全部の ToolStripContainer コントロールを、デザイン時に直接選択して削除できます。 ToolStripContainer は展開および折りたたみが可能で、内部のコントロールに合わせてサイズ調整されます。

"ドッキング" は、コントロールの位置をフォームの左側、右側、上側、または下側に単純に指定することです。

ドッキングよりもラフティングの方が有利な点は、ToolStripMenuStripStatusStrip の各コントロールが他のコントロールと水平スペースまたは垂直スペースを共有できることです。

ほとんどの ToolStrip コントロールは、他のコントロールと同様、ラフティングを使用せずにフォームにドッキングできます。 また、ToolStrip コントロールを ToolStripContainer 外に移動し、Dock プロパティを None に設定することによって、コントロールをフォーム上の任意の配置することもできます。また、それぞれの Location プロパティを設定して、コントロールの絶対位置を指定することもできます。 「方法: ToolStrip を ToolStripContainer からフォームに移動する」を参照してください。

1 つ以上の ToolStripPanel コントロールを使用すると、柔軟性が高まります。特に、マルチ ドキュメント インターフェイス (MDI: Multiple Document Interface) アプリケーションの場合、または ToolStripContainer が不要な場合には、これが当てはまります。 ToolStripPanel には、ToolStrip コントロールの配置とラフティングのためにドッキングできる領域が用意されていますが、従来のコントロールには用意されていません。 既定では、ToolStripPanel はデザイナーの [ツールボックス] に表示されませんが、 [ツールボックス] を右クリックして [アイテムの選択] をクリックすると配置できます。 また、他のクラスと同様に、ToolStripPanel にプログラムからアクセスすることもできます。

ToolStripMenuStrip、および StatusStrip を使用すると、項目はオーバーフローします。 これは、Microsoft Office ツール バーの項目の動作と似ています。

関連項目