Подсказка для каждого элемента в выпадающем списке в vb.net - PullRequest
0 голосов
/ 17 января 2020

Я установил свойство DrawMode на OwnerDrawFixed и использую приведенный ниже код для всплывающей подсказки для каждого элемента в Combobox. Я получаю System.Data.DataRow как элементы в моем ComboBox также во всплывающей подсказке. Как я могу решить эту проблему?

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

        If e.Index = -1 Then
            Return
        End If

        e.DrawBackground()
        Dim p As New Point
        p = New Point(ComboBox1.Location.X + 120, ComboBox1.Location.Y + ComboBox1.Height + (30 + e.Index * 10))

        If (e.State And DrawItemState.Selected) = DrawItemState.Selected Then
            ToolTip1.Show(ComboBox1.Items(e.Index).ToString, Me, p)
        End If

        ' e.DrawBackground()
        e.Graphics.DrawString(ComboBox1.Items(e.Index).ToString, e.Font, Brushes.Black, New Point(e.Bounds.X, e.Bounds.Y))

    End Sub

1 Ответ

0 голосов
/ 17 января 2020

Ваш код ComboBox1.Items(e.Index).ToString вызывает .ToString() для базовых Type Предметов (e.Index). Похоже, что вы связываете ComboBox с DataTable, поэтому базовое Type всего в Items является DataRow. При вызове ToString() в DataRow будет получено значение System.Data.DataRow.

Вместо этого вам нужно извлечь нужное значение из нужного столбца DataRow и поместить это значение в всплывающую подсказку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...