Iva*_*van 9 .net c# combobox statusstrip winforms
默认情况下,ComboBox和Button元素不属于WinForms设计器提供的StatusStrip(DropDownButton和SplitButton).有没有办法在那里添加它们?据我所知,任何控制都可以嵌入那里,但如何?
dig*_*All 13
您可以轻松实现继承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...
}
Run Code Online (Sandbox Code Playgroud)
重建解决方案后,您甚至可以在设计器中看到该项目:

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
{
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9468 次 |
| 最近记录: |