Пользовательский элемент управления в элементе управления StatusStip - PullRequest
1 голос
/ 26 сентября 2011

Есть ли способ добавить пользовательский элемент управления в StatusStrip Элемент управления?

Скажите, мне нужен многоколонный комбинированный список в строке состояния ...

Ответы [ 2 ]

2 голосов
/ 28 сентября 2011

Как упомянул скромный Ганс Пассант , в решении использовались атрибуты ToolStripControlHost и ToolStripDesignerAvailability.

Более подробную информацию можно получить здесь

1 голос
/ 26 сентября 2011

Самый простой способ - сделать рисунок самостоятельно, используя 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 .

...