Non mi piace tanto cosa è venuto fuori, quando si chiude il form si apre la DropDown, non ho capito completamente ciò che ho scritto...inoltre devo capire come fare l' Overrides della Sub sotto.
Comunque, sono partito da questo:
http://msdn.microsoft.com/it-it/library/system.windows.forms.combobox.drawitem.aspx
Imposta la proprietà DrawMode come scritto nel link oppure nella "Sub New" del custom control aggiungi:
Me.DrawMode = DrawMode.OwnerDrawVariable
Poi aggiungi:
Private Sub CBcustom_DrawItem(ByVal sender As Object, _
ByVal e As System.Windows.Forms.DrawItemEventArgs) _
Handles Me.DrawItem
Dim coloreSfondo As Color
Dim coloreCarattere As System.Drawing.Brush
Dim myFont As System.Drawing.Font
'e.state indica se il mouse è sopra una riga
If e.State = 1 Then
coloreSfondo = Color.DarkCyan
coloreCarattere = Brushes.White
Else
coloreCarattere = Brushes.Black
'prima riga bianca
If e.Index = 0 Then
coloreSfondo = Color.White
Else
'distinzione tra righe pari o dispari
If ((e.Index Mod 2) <> 0) Then
coloreSfondo = Color.WhiteSmoke
Else
coloreSfondo = Color.Gainsboro
End If
End If
End If
e.DrawBackground()
Dim rectangle As Rectangle = New Rectangle(e.Bounds.Left, _
e.Bounds.Top, e.Bounds.Width, e.Bounds.Height)
e.Graphics.FillRectangle(New SolidBrush(coloreSfondo), rectangle)
myFont = New Font(Me.Font.FontFamily, Me.Font.Size, FontStyle.Regular)
e.Graphics.DrawString(Me.Items(e.Index), myFont, coloreCarattere, _
New RectangleF(e.Bounds.X, e.Bounds.Y, _
e.Bounds.Width, e.Bounds.Height))
e.DrawFocusRectangle()
End Sub
E' solo un' abbozzo ma penso che la sostanza ci sia...