PDA

Visualizza la versione completa : VB.NET domanda su combobox


afrappe
16-09-2002, 10:47
dopo aver caricato un combo:
combo1.items.add("ciccio")
combo1.items.add("pippo")
combo1.items.add("pluto")

come faccio a fare in modo che il "testo" di un elemento di un combo venga colorato in modo differente dagli altri
o piu genericamente rendere il testo di ogni elemento di un colore diverso?

Grazie a tutti per l'attenzione

darkblOOd
16-09-2002, 12:57
credo non sia possibile a meno che non si possa intendere un item come singolo oggetto :eek:

afrappe
16-09-2002, 13:27
anche io penso che ogni elemento rappresenti un'oggetto,
anche perche esiste una collezione items,
non trovo pero' la proprieta forecolor per il singolo item,
sto risolvendo gestendo l'evento drawithem e ridisegnando la stringa a "manella", ma un po un casino, forse devo creare una classe ereditando da quella del combo....
vabbe ci sto lavorando, chiunque avesse qualche idea geniale si faccia avanti!

afrappe
16-09-2002, 16:06
per chi interessa:

dopo aver impostao la proprieta DrawMode del combobox su "OwnerDrawFixed" (che consente di disegnare "manualmente" l'elemento nel combo)

ho gestito l'evento DrawItem in questo modo:
-------------------------
Private Sub combo2_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles combo2.DrawItem
Dim oBrush As SolidBrush = DirectCast(IIf(e.Index = combo2.SelectedItem, Brushes.Red, Brushes.Black), SolidBrush)
Dim sText As String = DirectCast(combo2.Items(e.Index), String)
e.Graphics.DrawString(sText, Me.Font, oBrush, e.Bounds.X, e.Bounds.Y)
End Sub
------------------------


cosi(in questo caso) ho il secondo elemento colorato di rosso
vabbe la formattazione andata a farsi friggere
cmq un bel punto di partenza, io ho risolto cosi,
in pratica dentro al combo ci si potrebbe disegnare qualsiasi cosa, io c'ho "disegnato" una stringa

se qualcuno hai in mente qualche utilizzo cazzuto di questa cosa, si faccia avanti

Loading