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

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top