ContextMenuStrip-Klasse
Assembly: System.Windows.Forms (in system.windows.forms.dll)
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] [ComVisibleAttribute(true)] public class ContextMenuStrip : ToolStripDropDownMenu
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ /** @attribute ComVisibleAttribute(true) */ public class ContextMenuStrip extends ToolStripDropDownMenu
Die ContextMenuStrip-Klasse stellt Kontextmenüs dar, die angezeigt werden, wenn der Benutzer mit der rechten Maustaste auf ein Steuerelement oder einen Bereich eines Formulars klickt. Kontextmenüs werden i. d. R. verwendet, um verschiedene, für den Benutzer in einem bestimmten Kontext der Anwendung nützliche Menüelemente aus einem MenuStrip eines Formulars miteinander zu kombinieren. Sie können z. B. mithilfe eines einem TextBox-Steuerelement zugewiesenen Kontextmenüs Menübefehle zum Ändern der Textschriftart, zum Suchen nach Text innerhalb des Steuerelements oder Zwischenablagefeatures zum Kopieren und Einfügen von Text bereitstellen. Sie können außerdem in einem Kontextmenü neue ToolStripMenuItem-Objekte verfügbar machen, die sich nicht in einem MenuStrip befinden, um situationsspezifische Befehle bereitzustellen, deren Anzeige in einem MenuStrip inadäquat wäre.
Ein Kontextmenü wird i. d. R. angezeigt, wenn ein Benutzer mit der rechten Maustaste auf ein Steuerelement oder das Formular selbst klickt. Viele angezeigte Steuerelemente sowie das Form selbst weisen eine Control.ContextMenuStrip-Eigenschaft auf, die die ContextMenuStrip-Klasse an das Steuerelement bindet, das das Kontextmenü anzeigt. Ein ContextMenuStrip kann von mehr als einem Steuerelement verwendet werden.
Legen Sie die ToolStripDropDownMenu.ShowCheckMargin-Eigenschaft auf true fest, um links von einem ToolStripMenuItem Platz für eine Markierung hinzuzufügen, durch das angezeigt wird, das das Menüelement aktiviert oder ausgewählt ist. Die ToolStripDropDownMenu.ShowImageMargin-Eigenschaft ist standardmäßig auf true festgelegt. Verwenden Sie diesen Platz links vom ToolStripMenuItem, um ein Bild für dieses Menüelement anzuzeigen.
ContextMenuStrip ist der Container für die Objekte ToolStripMenuItem, ToolStripComboBox, ToolStripSeparator und ToolStripTextBox.
Der ContextMenuStrip ersetzt Funktionalität und fügt dem ContextMenu-Steuerelement früherer Versionen Funktionalität hinzu. Sie können das ContextMenu bei Bedarf jedoch aus Gründen der Abwärtskompatibilität und für eine künftige Verwendung beibehalten.
Im folgenden Codebeispiel wird ein ContextMenuStrip veranschaulicht, dem dynamisch Elemente hinzugefügt wird, in dem das SourceControl dynamisch ermittelt und wieder verwendet und das Opening-Ereignis behandelt wird.
// 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; } }
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.