dotnetmonitor.com

 
Index
Previous
Next

 

ToolStripMenuItem - default

ToolStripSeparator

ToolStripTextBox

ToolStripComboBox

 

Preferred items means the items that are designed to render with high accuracy across by system and professional renderers in all orientations and those available by default at design time for this control.

ContextMenuStrip Sample

ContextMenuStrip.Opening

e.Cancel handling with no items

Dynamic SourceControl determination w/ reuse

Dynamic item addition

 

class Form3 : Form

{

private ContextMenuStrip fruitContextMenuStrip;

 

public Form3()

{

// new ContextMenuStrip

fruitContextMenuStrip = new ContextMenuStrip();

 

// sync opening event

fruitContextMenuStrip.Opening += new System.ComponentModel.CancelEventHandler(cms_Opening);

 

// new ToolStrip

ToolStrip ts = new ToolStrip();

ToolStripDropDownButton fruitToolStripDropDownButton = new ToolStripDropDownButton("Fruit", null, null, "Fruit");

ts.Items.Add(fruitToolStripDropDownButton);

ts.Dock = DockStyle.Top;

 

// wire up DropDownItem DropDown

fruitToolStripDropDownButton.DropDown = fruitContextMenuStrip;

 

// new MenuStrip

MenuStrip ms = new MenuStrip();

ToolStripMenuItem fruitToolStripMenuItem = new ToolStripMenuItem("Fruit", null, null, "Fruit");

ms.Items.Add(fruitToolStripMenuItem);

ms.Dock = DockStyle.Top;

 

// wire up ToolStripMenuItem DropDown

fruitToolStripMenuItem.DropDown = fruitContextMenuStrip;

 

// wire up Form ContextMenuStrip

this.ContextMenuStrip = fruitContextMenuStrip;

 

// Add the toolstrip to the controls collection

this.Controls.Add(ts);

 

// add menustrip to the controls collection last - Z order!

this.Controls.Add(ms);

}

 

void cms_Opening(object sender, System.ComponentModel.CancelEventArgs e)

{

// grab owners

Control c = fruitContextMenuStrip.SourceControl as Control;

ToolStripDropDownItem tsi = fruitContextMenuStrip.OwnerItem as ToolStripDropDownItem;

 

// clear collection

fruitContextMenuStrip.Items.Clear();

 

// check 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());

}

 

 

// add default items

fruitContextMenuStrip.Items.Add("-");

fruitContextMenuStrip.Items.Add("Apples");

fruitContextMenuStrip.Items.Add("Oranges");

fruitContextMenuStrip.Items.Add("Pears");

 

// set cancel to false (optimized to true based on empty entry)

e.Cancel = false;

 

}

}

Painting
When should I use Paint/OnPaint and when should I override the ToolStripRenderer?
Do I need to worry about double buffering?
Parenting
Partial Trust
Usage