1

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

说,我需要状态栏中的多列组合框...

4

2 回答 2

2

正如谦虚的Hans Passant所说,解决方案是使用ToolStripControlHostandToolStripDesignerAvailability属性。

更多细节可以在这里咨询

于 2011-09-28T08:42:02.620 回答
1

最简单的方法是使用 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 事件

于 2011-09-26T14:05:20.467 回答