Установка высоты combobox OwnerDrawVariable (неожиданный результат отображения)

Вопрос:

Прежде всего, я сделал коробку combox с modor ownerdrawvariable, потому что я хотел обрабатывать всплывающие подсказки с наведением мыши. Для этого я обработал два метода DrawItem и MeasureItem:

    Private Sub DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles cboPneuGlobal.DrawItem

If e.Index = -1 Then
Exit Sub
End If

e.DrawBackground()

Dim p As Point = New Point(CInt(cboPneuGlobal.Location.X * Ratio), CInt(cboPneuGlobal.Location.Y * Ratio))
Dim brColor As Brush = Brushes.Black

If e.State = DrawItemState.Selected Then
ToolTipFormBase.Show(CType(cboPneuGlobal.Items(e.Index), clsPneuEtTypeMarque).ToDisplay, Me, p)
brColor = Brushes.White
End If


e.Graphics.DrawString(CType(cboPneuGlobal.Items(e.Index), clsPneuEtTypeMarque).ToDisplay, e.Font, brColor, New Point(e.Bounds.X, e.Bounds.Y))

End Sub

Здесь второе:

    Private Sub measureItem(ByVal sender As Object, ByVal e As System.Windows.Forms.MeasureItemEventArgs) Handles cboPneuGlobal.MeasureItem

' fetch the current item were painting as specified by the index
Dim comboBoxItem As Object = cboPneuGlobal.Items(e.Index)

' measure the text of the item (in Whidbey consider using TextRenderer.MeasureText instead)
Dim textSize As Size = e.Graphics.MeasureString(CType(cboPneuGlobal.Items(e.Index), clsPneuEtTypeMarque).ToDisplay, cboPneuGlobal.Font).ToSize()
e.ItemHeight = textSize.Height
e.ItemWidth = textSize.Width

End Sub

У меня небольшая проблема с отображением, которая не соответствует размеру поля со списком моего элемента и остается небольшим. Это делает мой текст усеченным. Смотрите изображение:

Image1

enter image description here

Что я делаю неправильно?

Лучший ответ:

Он отлично работает с выпадающим списком non ownerdraw

Оцените статью
TechArks.Ru
Добавить комментарий