Colorare ListViewItem o checkbox di ListViewItem

venerdì 08 giugno 2007 - 11.39

Abdujaparov Profilo | Newbie

Salve a tutti, ho creato una listview in cui gli item hanno delle ckeckbox. Per segnare la checkbox con un segno di spunta faccio:

item.Checked = true;

dove item è l'oggetto ListViewItem, ora vorrei impostare alcune checkbox grigie, cioè, per fare un esempio quando seleziono 10 file di cui alcuni sono in sola lettura mentre altri non lo sono nelle proprietà windows mi mette la checkbox per la sola lettura con il segno di spunta ma con un grigio, la checkbox è abilitata solo che compare grigia per segnalare che non tutti i file godono della proprietà.
Io vorrei far comparire la checkbox del mio livstviewitem in questo modo.
Un'altra domanda come potrei lo sfondo di un item, di norma è bianco, io per esempio lo vorrei rosso, come posso fare?
Grazie a tutti, ciao ciao.

Cteniza Profilo | Guru

Per il backcolor
metti la proprietà degli items prima di aggiungerli.
Dim item As new ListViewItem
item.UseItemStyleForSubItems = false
poi in qualsiasi momento puoi impostare il colore della cella
item.SubItems(0).BackColor = Color.Blue

Abdujaparov Profilo | Newbie

Grazie mille, negli item con checkbox, c'è modo di impostare lo sfondo solo della casella della checkbox?
Grazie, ciao ciao.

Cteniza Profilo | Guru

Potresti provare a fare l'override di OnPaint ma ... non ne sono sicuro e non ho esempi da proporti :)

Abdujaparov Profilo | Newbie

Grazie mille, un'altra domanda:
sto cercando di capire come utilizzare questi due eventi per prendere l'item che ha subito una modifica.
In pratica ho una listview che riempo con degli item, alcuni li imposto come checked altri li lascio non segnati.
Appena metto un segno di spunta su un item o tolgo il segno di spunta da un altro item vorrei ottenere l'indice dell'item con la checkbox su cui ho cliccato.
Dalle proprietà che ho visto noto solo che mi vengono ritornati insiemi, io vorrei capire qual è il singolo item che ha subito una modifica.
Un'altra domanda ancora non riesco a capire la differenza tra l'evento ItemCheck ed ItemChecked, che cambia?
Grazie, ciao ciao.

Cteniza Profilo | Guru

Per avere l'elemento su cui hai cambiamento puoi intercettare l'evento itemcheck http://msdn2.microsoft.com/en-us/library/system.windows.forms.listview.itemcheck.aspx che avviene quando lo stato checked/unckecked cambia
Invece la lista degli elementi con la spunta si ottiene dallo collection Checkeditems.
http://msdn2.microsoft.com/en-us/library/system.windows.forms.listview.checkeditems.aspx

Abdujaparov Profilo | Newbie

Grazie mille sono riuscito a risolvere.
Grazie ancora, ciao ciao.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5