C # salto casella listView
-
24-09-2019 - |
Domanda
Ho un listView che le liste di un gruppo di file, e una serie di caselle di controllo che consentono agli utenti di scaricarli da un server FTP, in questo modo:
Filename Size Last modified New version
[ ] someimage.jpg 120 kB 2010-01-13 16:12:59 Yes
[ ] otherfile.zip 12 kB 2009-12-29 09:33:15 No
[ ] folder - - -
Io non voglio avere una casella di controllo sulla cartella, però, ma ho bisogno che (la cartella) da visualizzare nella lista.
Come faccio a miglior tipo questo?
Aggiornamento:. Sto utilizzando Windows Forms
Soluzione
si può mettere la vostra casella di riepilogo in stato OwnerDraw (impostato fedele alla proprietà OwnerDraw). Quindi definire DrawSubItem e DrawColumnHeader gestori di eventi. Nel DrawSubItem fare pittura di default per gli elementi che richiedano caselle da trarre. Controllare il codice qui sotto; dovrebbe saltare disegnare una casella di controllo per la voce con "1" nel suo campo di testo e dipingere solo il testo della voce.
private void listView1_DrawSubItem(object sender, DrawListViewSubItemEventArgs e)
{
if (e.ColumnIndex == 0 && e.Item.Text=="1")
{
e.DrawBackground();
e.DrawText();
}
else
{
e.DrawDefault = true;
}
}
private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
{
e.DrawDefault = true;
}
in alternativa è possibile fare la propria casella di pittura utilizzando CheckBoxRenderer classe
Spero che questo aiuti, saluti