默认情况下,ComboBox 和 Button 元素不属于 WinForms 设计器提供的添加到 StatusStrip 的元素(而 DropDownButton 和 SplitButton 是)。有没有办法在那里添加它们?据我所知,任何控件都可以嵌入其中,但是如何?
问问题
10076 次
3 回答
21
更容易的是,您可以剪切通过 ToolStrip 中的菜单创建的 ToolStripComboBox 并将其粘贴到 StatusStrip 中。没有编写任何代码行......它可以工作;-)
于 2011-03-29T16:59:35.180 回答
14
您可以轻松地实现继承自ToolStripControlHost
:
[ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.MenuStrip |
ToolStripItemDesignerAvailability.ContextMenuStrip |
ToolStripItemDesignerAvailability.StatusStrip)]
public class ComboStripItem : ToolStripControlHost
{
private ComboBox combo;
public ComboStripItem()
: base(new ComboBox())
{
this.combo = this.Control as ComboBox;
}
// Add properties, events etc. you want to expose...
}
重建您的解决方案后,您甚至可以在设计器中看到该项目:
PS
这个项目也可以在ContextMenuStrip
和 中使用MenuStrip
。
编辑:
要设置自定义图标,请使用ToolboxBitmapAttribute
.
但是,我注意到实际上有一个内置的组合框工具条项目,名为ToolStripComboBox
.
它对 StatusStrip 没有设计器可见性,但可以通过代码轻松地将其添加到 StatusStrip,或者,如果您愿意,可以扩展它以提供完整的可见性:
[ToolboxBitmapAttribute("image path or use another overload..."),
ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.MenuStrip |
ToolStripItemDesignerAvailability.ContextMenuStrip |
ToolStripItemDesignerAvailability.StatusStrip)]
public class ComboBoxItem : ToolStripComboBox
{
}
于 2011-02-12T16:17:08.737 回答
1
如果您想向您的 中添加一个简单的按钮,您StatusStrip
可以使用设计器来完成。
首先,添加一个DropDownButton
. 然后,在DropDownButton
属性窗口中,将ShowDropDownArrow
属性设置为False
。
对要在StatusStrip
.
于 2016-07-20T18:16:47.350 回答