最近研究了一下如何将第三方控件嵌入到ToolStrip控件中,并能提供Design-Time下的支持.
下面将详细讲解如何把系统的MonthCalendar控件嵌入到ToolStrip控件中.
以下的两幅图片显示了最终的样子.
Run-Time下的样子
Design-Time下的样子
微软实现了一个ToolStripControlHost类, 它是ToolStripComboBox, ToolStripTextBox, 和 ToolStripProgressBar等的基类. ToolStripControlHost提供了将第三方控件嵌入ToolStrip的能力. 我们可以用两种方式使用它:
实现步骤如下:
完整的示例请参见MSDN(http://msdn2.microsoft.com/en-us/library/9k5etstz.aspx ).
它可以使ToolStrip在Design-Time下能够找到从ToolStripControlHost继承的第三方控件, 直接效果就是第三方控件在下拉菜单中可以直接列举出来. 另外,除了可以将第三方控件嵌入ToolStrip外, 我们还可以直接将第三方控件嵌入到ContextMenuStrip, MenuStrip和StatusStrip中.
ToolStripItemDesignerAvailability枚举成员如下:
成员名称 |
说明 |
All |
指定所有控件均可见。 |
ContextMenuStrip |
指定 ContextMenuStrip 是可见的。 |
MenuStrip |
指定 MenuStrip 是可见的。 |
None |
指定无任何控件可见。 |
StatusStrip |
指定 StatusStrip 是可见的。 |
ToolStrip |
指定 ToolStrip 是可见的。 |
The End