Вы можете легко реализовать наследование от 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
{
}