Export (0) Print
Expand All

How to: Handle the ContextMenuStrip Opening Event

You can customize the behavior of your ContextMenuStrip control by handling the Opening event.

The following code example demonstrates how to handle the Opening event. The event handler adds items dynamically to a ContextMenuStrip control. For the complete code example, see How to: Add ToolStrip Items Dynamically.

// 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;
}

Set the CancelEventArgs.Cancel property to true to prevent the menu from opening.

Show:
© 2015 Microsoft