有没有办法将自定义控件添加到StatusStrip
控件?
说,我需要状态栏中的多列组合框...
正如谦虚的Hans Passant所说,解决方案是使用ToolStripControlHost
andToolStripDesignerAvailability
属性。
更多细节可以在这里咨询
最简单的方法是使用 ToolStripComboBox 自己进行绘图,然后将该控件放在您的 StatusStrip 中。ToolStripComboBox 与普通的 ComboBox 不同,因为它派生自 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 事件。