ToolStrip Control Overview (Windows Forms)
The Windows Forms ToolStrip control and its associated classes provide a common framework for combining user interface elements into toolbars, status bars, and menus. ToolStrip controls offer a rich design-time experience that includes in-place activation and editing, custom layout, and rafting, which is the ability of toolbars to share horizontal or vertical space.
Features of the ToolStrip Controls
Use the ToolStrip control to:
Present a common user interface across containers.
Create easily customized, commonly employed toolbars that support advanced user interface and layout features, such as docking, rafting, buttons with text and images, drop-down buttons and controls, overflow buttons, and run-time reordering of ToolStrip items.
Support overflow and run-time item reordering. The overflow feature moves items to a drop-down menu when there is not enough room to display them in a ToolStrip.
Support the typical appearance and behavior of the operating system through a common rendering model.
Handle events consistently for all containers and contained items, in the same way you handle events for other controls.
Create drop-down controls and user interface type editors with advanced layouts in a ToolStripDropDown.
You can extend the functionality and modify the appearance and behavior by using the ToolStripRenderer, ToolStripProfessionalRenderer, and ToolStripManager along with the ToolStripRenderMode and ToolStripManagerRenderMode enumerations.
The ToolStrip control is highly configurable and extensible, and it provides many properties, methods, and events to customize appearance and behavior. Below are some noteworthy members:
Important ToolStrip Members
|Dock||Gets or sets which edge of the parent container a ToolStrip is docked to.|
|AllowItemReorder||Gets or sets a value indicating whether drag-and-drop and item reordering are handled privately by the ToolStrip class.|
|LayoutStyle||Gets or sets a value indicating how the ToolStrip lays out its items.|
|Overflow||Gets or sets whether a ToolStripItem is attached to the ToolStrip or ToolStripOverflowButton or can float between the two.|
|IsDropDown||Gets a value indicating whether a ToolStripItem displays other items in a drop-down list when the ToolStripItem is clicked.|
|OverflowButton||Gets the ToolStripItem that is the overflow button for a ToolStrip with overflow enabled.|
|Renderer||Gets or sets a ToolStripRenderer used to customize the appearance and behavior (look and feel) of a ToolStrip.|
|RenderMode||Gets or sets the painting styles to be applied to the ToolStrip.|
|RendererChanged||Raised when the Renderer property changes.|
The ToolStrip control's flexibility is achieved through the use of a number of companion classes. Below are some of the most noteworthy:
Important ToolStrip Companion Classes
|MenuStrip||Replaces and adds functionality to the MainMenu class.|
|StatusStrip||Replaces and adds functionality to the StatusBar class.|
|ContextMenuStrip||Replaces and adds functionality to the ContextMenu class.|
|ToolStripItem||Abstract base class that manages events and layout for all the elements that a ToolStrip, ToolStripControlHost, or ToolStripDropDown can contain.|
|ToolStripContainer||Provides a container with a panel on each side of the form in which controls can be arranged in various ways.|
|ToolStripRenderer||Handles the painting functionality for ToolStrip objects.|
|ToolStripProfessionalRenderer||Provides Microsoft Office-style appearance.|
|ToolStripManager||Controls ToolStrip rendering and rafting, and the merging of MenuStrip, ToolStripDropDownMenu, and ToolStripMenuItem objects.|
|ToolStripManagerRenderMode||Specifies the painting style (custom, Windows XP, or Microsoft Office Professional) applied to multiple ToolStrip objects contained in a form.|
|ToolStripRenderMode||Specifies the painting style (custom, Windows XP, or Microsoft Office Professional) applied to one ToolStrip object contained in a form.|
|ToolStripControlHost||Hosts other controls that are not specifically ToolStrip controls but for which you want ToolStrip functionality.|
|ToolStripItemPlacement||Specifies whether a ToolStripItem is to be laid out on the main ToolStrip, on the overflow ToolStrip, or neither.|