次の方法で共有


ToolStrip テクノロジの概要

更新 : 2007 年 11 月

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

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

名前空間

System.Windows.Forms

背景

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

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

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

  • ToolStripManager と ToolStripRenderer を使用したカスタム描画

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

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

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

  • ToolStripContainer、ToolStripPanel、および ToolStripContentPanel を使用した、自由に構成可能なコントロール位置

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

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

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

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

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

Topic Location
[ToolStrip タスク] ダイアログ ボックス Windows フォームのプログラミング
[ToolStripContainer タスク] ダイアログ ボックス Windows フォームのプログラミング
[ContextMenuStrip タスク] ダイアログ ボックス Windows フォームのプログラミング
[MenuStrip タスク] ダイアログ ボックス Windows フォームのプログラミング
[StatusStrip タスク] ダイアログ ボックス Windows フォームのプログラミング
[MenuStrip タスク] ダイアログ ボックス Windows フォームのプログラミング
[ToolStrip タスク] ダイアログ ボックス Windows フォームのプログラミング
[ContextMenuStrip タスク] ダイアログ ボックス Windows フォームのプログラミング
[StatusStrip タスク] ダイアログ ボックス Windows フォームのプログラミング
[ToolStripContainer タスク] ダイアログ ボックス Windows フォームのプログラミング
[MenuStrip タスク] ダイアログ ボックス Windows フォームのプログラミング
[ToolStrip タスク] ダイアログ ボックス Windows フォームのプログラミング
[ContextMenuStrip タスク] ダイアログ ボックス Windows フォームのプログラミング
[StatusStrip タスク] ダイアログ ボックス Windows フォームのプログラミング
[ToolStripContainer タスク] ダイアログ ボックス Windows フォームのプログラミング
[MenuStrip タスク] ダイアログ ボックス dv_ManCli
[ToolStrip タスク] ダイアログ ボックス dv_ManCli
[ContextMenuStrip タスク] ダイアログ ボックス dv_ManCli
[StatusStrip タスク] ダイアログ ボックス dv_ManCli
[ToolStripContainer タスク] ダイアログ ボックス dv_ManCli
[MenuStrip タスク] ダイアログ ボックス dv_ManCli
[ToolStrip タスク] ダイアログ ボックス dv_ManCli
[ContextMenuStrip タスク] ダイアログ ボックス dv_ManCli
[StatusStrip タスク] ダイアログ ボックス dv_ManCli
[ToolStripContainer タスク] ダイアログ ボックス dv_ManCli

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

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

Topic Location
ToolStrip Items コレクション エディタ Windows フォームのプログラミング
ContextMenuStrip Items コレクション エディタ Windows フォームのプログラミング
StatusStrip Items コレクション エディタ Windows フォームのプログラミング
MenuStrip Items コレクション エディタ Windows フォームのプログラミング
MenuStrip Items コレクション エディタ Windows フォームのプログラミング
StatusStrip Items コレクション エディタ Windows フォームのプログラミング
ContextMenuStrip Items コレクション エディタ Windows フォームのプログラミング
ToolStrip Items コレクション エディタ Windows フォームのプログラミング
MenuStrip Items コレクション エディタ Windows フォームのプログラミング
StatusStrip Items コレクション エディタ Windows フォームのプログラミング
ContextMenuStrip Items コレクション エディタ Windows フォームのプログラミング
ToolStrip Items コレクション エディタ Windows フォームのプログラミング
MenuStrip Items コレクション エディター dv_ManCli
StatusStrip Items コレクション エディター dv_ManCli
ContextMenuStrip Items コレクション エディター dv_ManCli
ToolStrip Items コレクション エディター dv_ManCli
MenuStrip Items コレクション エディター dv_ManCli
StatusStrip Items コレクション エディター dv_ManCli
ContextMenuStrip Items コレクション エディター dv_ManCli
ToolStrip Items コレクション エディター dv_ManCli

コントロールのホスト

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 カスタム レンダラのサンプル」を参照してください。

スタイルとテーマ

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

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

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

"ラフティング" は、水平スペースまたは垂直スペースを共有するためのツール バーの機能です。Windows フォームでは、ToolStripMenuStrip、および StatusStrip の各コントロールの配置とラフティングを行うときに、フォームの左側、右側、上側、または下側にパネルを持つ 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 ツール バーの項目の動作方法と似ています。

参照

処理手順

ToolStrip サンプル

ToolStrip のカスタマイズ サンプル

統合コマンドのサンプル

概念

ToolStrip コントロールのアーキテクチャ

参照

ToolStrip コントロールの概要 (Windows フォーム)