Microsoft Communities

Welcome to WindowsClient.net | Sign in | Join

Here are some frequently asked questions about Windows Forms and their answers.

Windows Forms FAQs

How do property values flow from parent to auto created dropdowns?

For the implementation of faux-ambient properties we make a distinction in how the dropdown for a ToolStripDropDownItem is created. We automatically flow Font, ImageScalingSize and Renderer to the autocreated dropdown. In the case of explicitly created dropdowns you must set these properties yourself.

Explicit creation of ToolStripDropDown

Refers to instancing a ToolStripDropDown, ToolStripDropDownMenu or ContextMenuStrip, populating it, then assigning to a ToolStripDropDownItem's DropDown property:

Implicit (automatic) creation of ToolStripDropDown

Refers to populating a ToolStripDropDownItem's DropDownItems collection. When that item is activated, the dropdown in created by use containing the item from the OwnerItem's DropDownItems collection.:

Sample

Run the following sample; it shows the font flows into the veggies menu dropdown, but not fruit.

// explicit
ContextMenuStrip cms = new ContextMenuStrip();
cms.Items.Add("Apples");
cms.Items.Add("Bananas");
cms.Items.Add("Cherries");

ToolStripMenuItem fruitMenuItem = new ToolStripMenuItem("Fruit");
fruitMenuItem.DropDown = cms;

// implicit (automatic)
ToolStripMenuItem veggiesMenuItem = new ToolStripMenuItem("Veggies");
veggiesMenuItem.DropDownItems.Add("Asparagus");
veggiesMenuItem.DropDownItems.Add("Bok Choy");
veggiesMenuItem.DropDownItems.Add("Cauliflower");

// menustrip
MenuStrip ms = new MenuStrip();
// set Font to show property flow
ms.Font = new Font("Tebuchet MS", 14, FontStyle.Bold);
ms.Items.Add(fruitMenuItem);
ms.Items.Add(veggiesMenuItem);
this.Controls.Add(ms);


Page view counter