有没有办法将自定义控件添加到StatusStrip
控件?
说,我需要状态栏中的多列Combobox ......
答案 0 :(得分:2)
正如提到的适度Hans Passant,解决方案是使用ToolStripControlHost
和ToolStripDesignerAvailability
属性。
可以查阅更多详情here
答案 1 :(得分:1)
最简单的方法是使用ToolStripComboBox自己绘图,然后将该控件放在StatusStrip中。 ToolStripComboBox与普通的ComboBox不同,因为它derives from the ToolStripControlHost。
Dim comboStatus As New ToolStripComboBox
With DirectCast(comboStatus.Control, ComboBox)
.DrawMode = DrawMode.OwnerDrawFixed
AddHandler .DrawItem, AddressOf comboStatus_DrawItem
End With
StatusStrip1.Items.Add(comboStatus)
然后你使用DrawItem事件:
Private Sub comboStatus_DrawItem(ByVal sender As Object, ByVal e As DrawItemEventArgs)
Dim comboStatus As ComboBox = sender
e.DrawBackground()
If e.Index > -1 Then
//Do you drawing.
End If
End Sub
有关图纸详细信息,请参阅ComboBox.DrawItem Event。