ContextMenuStrip クラス
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)

<ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _ <ComVisibleAttribute(True)> _ Public Class ContextMenuStrip Inherits ToolStripDropDownMenu
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] [ComVisibleAttribute(true)] public class ContextMenuStrip : ToolStripDropDownMenu
[ClassInterfaceAttribute(ClassInterfaceType::AutoDispatch)] [ComVisibleAttribute(true)] public ref class ContextMenuStrip : public ToolStripDropDownMenu

ContextMenuStrip クラスは、ユーザーがコントロールまたはフォームの領域の上でマウスの右ボタンをクリックすると表示されるショートカット メニューを表します。通常、ショートカット メニューはフォームの MenuStrip のさまざまなメニュー項目を組み合わせるために使用されます。ショートカット メニューは、アプリケーションのコンテキストが指定されるためユーザーにとっては使いやすくなります。たとえば、TextBox に割り当てられたショートカット メニューを使用すると、テキストのフォントを変更したり、コントロール内のテキストを検索するためのメニュー項目、またはテキストをコピーして貼り付けるクリップボード機能を使用できます。また、MenuStrip 内にはない新しい ToolStripMenuItem オブジェクトをショートカット メニューに公開して、MenuStrip に表示することが適切でない、状況に応じたコマンドを提供できます。
通常、ショートカット メニューは、ユーザーがコントロールまたはフォーム自体の上で右ボタンをクリックすると表示されます。表示される多くのコントロールには、Form 自体と同様、ショートカット メニューを表示するコントロールに ContextMenuStrip クラスをバインドする Control.ContextMenuStrip プロパティがあります。ContextMenuStrip は複数のコントロールで使用できます。
ToolStripDropDownMenu.ShowCheckMargin プロパティを true に設定すると、ToolStripMenuItem の左側に、メニューが有効であること、または選択されていることを示すチェック マークを表示するための領域を追加できます。ToolStripDropDownMenu.ShowImageMargin プロパティは、既定では true に設定されています。ToolStripMenuItem の左側にあるこの領域を使用すると、そのメニュー項目のイメージを表示できます。
ContextMenuStrip は、ToolStripMenuItem、ToolStripComboBox、ToolStripSeparator、および ToolStripTextBox の各オブジェクトのコンテナです。
ContextMenuStrip では、以前のバージョンの ContextMenu コントロールの機能が置換または追加されていますが、下位互換性を維持し、必要に応じて今後使用できるように、ContextMenu が保持されています。

次のコードは、ContextMenuStrip の使用例を示したものです。項目を動的に追加する方法のほか、どのコントロールでメニューが表示されたかを SourceControl を使用して動的に判断する方法、および Opening イベントの処理方法を示しています。
' This code example demonstrates how to handle the Opening event. ' It also demonstrates dynamic item addition and dynamic ' SourceControl determination with reuse. Class Form3 Inherits Form ' Declare the ContextMenuStrip control. Private fruitContextMenuStrip As ContextMenuStrip Public Sub New() ' Create a new ContextMenuStrip control. fruitContextMenuStrip = New ContextMenuStrip() ' Attach an event handler for the ' ContextMenuStrip control's Opening event. AddHandler fruitContextMenuStrip.Opening, AddressOf cms_Opening ' Create a new ToolStrip control. Dim ts As New ToolStrip() ' Create a ToolStripDropDownButton control and add it ' to the ToolStrip control's Items collections. Dim fruitToolStripDropDownButton As New ToolStripDropDownButton("Fruit", Nothing, Nothing, "Fruit") ts.Items.Add(fruitToolStripDropDownButton) ' Dock the ToolStrip control to the top of the form. ts.Dock = DockStyle.Top ' Assign the ContextMenuStrip control as the ' ToolStripDropDownButton control's DropDown menu. fruitToolStripDropDownButton.DropDown = fruitContextMenuStrip ' Create a new MenuStrip control and add a ToolStripMenuItem. Dim ms As New MenuStrip() Dim fruitToolStripMenuItem As New ToolStripMenuItem("Fruit", Nothing, Nothing, "Fruit") ms.Items.Add(fruitToolStripMenuItem) ' Dock the MenuStrip control to the top of the form. ms.Dock = DockStyle.Top ' Assign the MenuStrip control as the ' ToolStripMenuItem's DropDown menu. fruitToolStripMenuItem.DropDown = fruitContextMenuStrip ' Assign the ContextMenuStrip to the form's ' ContextMenuStrip property. Me.ContextMenuStrip = fruitContextMenuStrip ' Add the ToolStrip control to the Controls collection. Me.Controls.Add(ts) 'Add a button to the form and assign its ContextMenuStrip. Dim b As New Button() b.Location = New System.Drawing.Point(60, 60) Me.Controls.Add(b) b.ContextMenuStrip = fruitContextMenuStrip ' Add the MenuStrip control last. ' This is important for correct placement in the z-order. Me.Controls.Add(ms) End Sub ' This event handler is invoked when the ContextMenuStrip ' control's Opening event is raised. It demonstrates ' dynamic item addition and dynamic SourceControl ' determination with reuse. Sub cms_Opening(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) ' Acquire references to the owning control and item. Dim c As Control = fruitContextMenuStrip.SourceControl Dim tsi As ToolStripDropDownItem = fruitContextMenuStrip.OwnerItem ' Clear the ContextMenuStrip control's ' Items collection. fruitContextMenuStrip.Items.Clear() ' Check the source control first. If Not (c Is Nothing) Then ' Add custom item (Form) fruitContextMenuStrip.Items.Add(("Source: " + c.GetType().ToString())) ElseIf Not (tsi Is Nothing) Then ' Add custom item (ToolStripDropDownButton or ToolStripMenuItem) fruitContextMenuStrip.Items.Add(("Source: " + tsi.GetType().ToString())) End If ' Populate the ContextMenuStrip control with its default items. fruitContextMenuStrip.Items.Add("-") fruitContextMenuStrip.Items.Add("Apples") fruitContextMenuStrip.Items.Add("Oranges") fruitContextMenuStrip.Items.Add("Pears") ' Set Cancel to false. ' It is optimized to true based on empty entry. e.Cancel = False End Sub End Class
// This code example demonstrates how to handle the Opening event. // It also demonstrates dynamic item addition and dynamic // SourceControl determination with reuse. class Form3 : Form { // Declare the ContextMenuStrip control. private ContextMenuStrip fruitContextMenuStrip; public Form3() { // Create a new ContextMenuStrip control. fruitContextMenuStrip = new ContextMenuStrip(); // Attach an event handler for the // ContextMenuStrip control's Opening event. fruitContextMenuStrip.Opening += new System.ComponentModel.CancelEventHandler(cms_Opening); // Create a new ToolStrip control. ToolStrip ts = new ToolStrip(); // Create a ToolStripDropDownButton control and add it // to the ToolStrip control's Items collections. ToolStripDropDownButton fruitToolStripDropDownButton = new ToolStripDropDownButton("Fruit", null, null, "Fruit"); ts.Items.Add(fruitToolStripDropDownButton); // Dock the ToolStrip control to the top of the form. ts.Dock = DockStyle.Top; // Assign the ContextMenuStrip control as the // ToolStripDropDownButton control's DropDown menu. fruitToolStripDropDownButton.DropDown = fruitContextMenuStrip; // Create a new MenuStrip control and add a ToolStripMenuItem. MenuStrip ms = new MenuStrip(); ToolStripMenuItem fruitToolStripMenuItem = new ToolStripMenuItem("Fruit", null, null, "Fruit"); ms.Items.Add(fruitToolStripMenuItem); // Dock the MenuStrip control to the top of the form. ms.Dock = DockStyle.Top; // Assign the MenuStrip control as the // ToolStripMenuItem's DropDown menu. fruitToolStripMenuItem.DropDown = fruitContextMenuStrip; // Assign the ContextMenuStrip to the form's // ContextMenuStrip property. this.ContextMenuStrip = fruitContextMenuStrip; // Add the ToolStrip control to the Controls collection. this.Controls.Add(ts); //Add a button to the form and assign its ContextMenuStrip. Button b = new Button(); b.Location = new System.Drawing.Point(60, 60); this.Controls.Add(b); b.ContextMenuStrip = fruitContextMenuStrip; // Add the MenuStrip control last. // This is important for correct placement in the z-order. this.Controls.Add(ms); } // This event handler is invoked when the ContextMenuStrip // control's Opening event is raised. It demonstrates // dynamic item addition and dynamic SourceControl // determination with reuse. void cms_Opening(object sender, System.ComponentModel.CancelEventArgs e) { // Acquire references to the owning control and item. Control c = fruitContextMenuStrip.SourceControl as Control; ToolStripDropDownItem tsi = fruitContextMenuStrip.OwnerItem as ToolStripDropDownItem; // Clear the ContextMenuStrip control's Items collection. fruitContextMenuStrip.Items.Clear(); // Check the source control first. if (c != null) { // Add custom item (Form) fruitContextMenuStrip.Items.Add("Source: " + c.GetType().ToString()); } else if (tsi != null) { // Add custom item (ToolStripDropDownButton or ToolStripMenuItem) fruitContextMenuStrip.Items.Add("Source: " + tsi.GetType().ToString()); } // Populate the ContextMenuStrip control with its default items. fruitContextMenuStrip.Items.Add("-"); fruitContextMenuStrip.Items.Add("Apples"); fruitContextMenuStrip.Items.Add("Oranges"); fruitContextMenuStrip.Items.Add("Pears"); // Set Cancel to false. // It is optimized to true based on empty entry. e.Cancel = false; } }

System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
System.Windows.Forms.ScrollableControl
System.Windows.Forms.ToolStrip
System.Windows.Forms.ToolStripDropDown
System.Windows.Forms.ToolStripDropDownMenu
System.Windows.Forms.ContextMenuStrip


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- ContextMenuStrip クラスのページへのリンク