Davgav’s HomePage
Página personal de Davgav.
Cargando Cargando...
07/10/2008
00:46

0 comentarios

Categorías:

Tutorial: Como crear un ComboBox personalizado en .NET

Combo Box Genérico

Hoy explicaremos el proceso de creación de un ComboBox personalizado.

Primero crearemos un control de usuario que herede de ComboBox. Después establecemos en el New el método de pintado del combo a DrawMode = DrawMode.OwnerDrawFixed.

Y por ultimo sobrescribimos el método OnDrawItem(ByVal e As System.Windows.Forms.DrawItemEventArgs), donde e indica la fila que se va a pintar, ofreciéndonos un objeto graphics que podemos usar directamente.

Nosotros hemos creado un ComboBox que pinta las filas de colores alternativamente, pero es posible crear cualquier tipo de rutina gráfica.

Os dejamos con el código:

Visual Basic .NET

Public Class CustomCombo

    Inherits ComboBox

 

    Public Sub New()

 

        ' Llamada necesaria para el Diseñador de Windows Forms.

        InitializeComponent()

 

        ' Agregue cualquier inicialización después de la llamada a InitializeComponent().

 

        'Indicamos que usaremos un pintado personalizado

        DrawMode = DrawMode.OwnerDrawFixed

 

    End Sub

 

    Protected Overrides Sub OnDrawItem(ByVal e As System.Windows.Forms.DrawItemEventArgs)

 

        'Nosotros pintaremos las filas alternativamente

        'e.index Indica la posicion en la que vamos a pintar

        'Obtenemos los bordes de la zona a pintar

 

        Dim bounds As New Rectangle

        bounds = e.Bounds

 

        'pintamos los fondos alternativamente

        If e.Index Mod 2 = 0 Then

            e.Graphics.FillRectangle(Brushes.AliceBlue, bounds)

        Else

            e.Graphics.FillRectangle(Brushes.Aqua, bounds)

        End If

 

        'pintamos la fila que selecciona el raton

        If e.State = DrawItemState.Selected Then

            e.Graphics.FillRectangle(Brushes.Blue, bounds)

        End If

 

        'pintamos el texto

        e.Graphics.DrawString(Items(e.Index), e.Font, Brushes.Black, bounds.X, bounds.Y)

        'Llamamos al pintado del componente, para que pinte lo que nos faltaria (el texto)

        MyBase.OnDrawItem(e)

 

    End Sub

 

End Class

 

0 comentarios de “Tutorial: Como crear un ComboBox personalizado en .NET”




Escribe un comentario

Nombre





Esta obra está bajo una licencia de Creative Commons.
Creative Commons License
Acerca De | Aviso Legal | Contactar | Sitemap
BlogESfera Directorio de Blogs Hispanos - Agrega tu Blog
Copyright © Davgav