none
Problema con datasource de combobox RRS feed

  • Pregunta

  • Hola amigos, tengo un problema, Me tome la tarea de personalizar el estilo  de un combobox por medio de su evento drawitem, Funciona perfecto cuando utilizo una lista de items como pueden ver en la siguiente imagen:

    Nota: En las propiedades del combo le asigne el Drawmode en OwnerDrawVariable

    El problema es cuando cargo el combobox por medio de un datasource desde una tabla, el combobox me muestra el siguiente error, no se a que se debe, el error desaparece cuando cambio el drawmode del combo de OwnerDrawVariable Normal, sin embargo no me muestra la personalizacion que le anadi.

    Este es el codigo que implemente en el evento draitem del combo:

     Private Sub combo_Equipos_DrawItem(sender As Object, e As DrawItemEventArgs) Handles combo_Equipos.DrawItem
    
            If e.Index < 0 Then
                Return
            End If
            Dim f As Font = combo_Equipos.Font
            Dim yOffset As Integer = 8
            Dim NuevoPincel = New SolidBrush(Color.FromArgb(80, 80, 80))
          
    
            If (e.State And DrawItemState.Focus) = 0 Then
                e.Graphics.FillRectangle(Brushes.White, e.Bounds)
                e.Graphics.DrawString(combo_Equipos.Items(e.Index).ToString(), f, Brushes.Black, New Point(e.Bounds.X, e.Bounds.Y + yOffset))
            Else
                e.Graphics.FillRectangle(NuevoPincel, e.Bounds)
                e.Graphics.DrawString(combo_Equipos.Items(e.Index).ToString(), f, Brushes.White, New Point(e.Bounds.X, e.Bounds.Y + yOffset))
            End If
        End Sub

    y el codigo que utilizo para cargar los elementos desde un datasource es el siguiente:

     Dim objCapaNegocio As New CNcompeticiones
            Dim dt As New DataTable
            
    
                dt = objCapaNegocio.ListarEquipos
    
                Dim dr As DataRow = dt.NewRow()
                dr("nombre") = "Seleccione un equipo..."
                dr("id_equipo") = 0
                dt.Rows.InsertAt(dr, 0)
    
                combo_Equipos.SelectedValue = 0
                combo_Equipos.DisplayMember = "nombre"
                combo_Equipos.ValueMember = "id_equipo"
                combo_Equipos.DataSource = dt
    Sus ayudas serian de mucha utilidad.









    • Editado Jose Alrey lunes, 15 de agosto de 2016 20:46
    lunes, 15 de agosto de 2016 20:38

Respuestas

Todas las respuestas