StatusStip控件中的自定义控件

时间:2011-09-26 12:00:18

标签: .net winforms statusstrip

有没有办法将自定义控件添加到StatusStrip控件?

说,我需要状态栏中的多列Combobox ......

2 个答案:

答案 0 :(得分:2)

正如提到的适度Hans Passant,解决方案是使用ToolStripControlHostToolStripDesignerAvailability属性。

可以查阅更多详情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