2010-01-31 43 views
2

我有一個ListView,列出一堆文件,以及一組複選框,允許用戶從FTP服務器下載它們,像這樣的:C#跳過複選框的ListView

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  - -        - 

我不想雖然在文件夾上有一個複選框,但我確實需要它(文件夾)顯示在列表中。

我該如何最好地排序呢?

更新:我正在使用Windows窗體。

+0

? – 2010-01-31 10:13:05

+0

Winforms 7moreWinforms – pastapockets 2010-01-31 10:13:46

+0

什麼是數據源?或者你只是使用IO? – Wil 2010-01-31 11:50:00

回答

2

您可以將您的列表框放入OwnerDraw狀態(將true設置爲OwnerDraw屬性)。然後定義DrawSubItem和DrawColumnHeader事件處理程序。在DrawSubItem中,爲需要繪製複選框的項目執行默認繪製。檢查下面的代碼;它應該跳過在其文本字段中使用「1」繪製複選框並繪製項目的文本。

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; 
} 

,你可以通過使用CheckBoxRenderer

希望這有助於做好自己的複選框繪畫的替代,您使用WPF認爲

+0

Typo alert :它說Listbox上面應該說ListView。 – 2012-07-06 23:09:04