2011-11-03 71 views
2

我想知道如何在列表視圖子項中添加圖像。如何在listview.subitem中添加圖像

我使用此代碼在子項中顯示文本。

double Text = "2452"; 
ListViewItem lItem = new ListViewItem(); 
lItem.SubItems.Add(Text.ToString()); 

我想要做這樣的事情

ListViewItem lItem = new ListViewItem(); 
lItem.SubItems.Add(Text.ToString() + "C:\\image.png"); 

在此先感謝。

+0

可能重複(HTTP:// stackoverflow.com/questions/1888542/how-can-i-set-an-icon-for-a-listviewsubitem) –

回答

3

ListView不支持這個。

我發現了另一個答案,建議你用DataGridView進行切換。

How can I set an icon for a ListViewSubItem?

你當然可以,做自定義繪製ListView控件的,如果你願意的話,但我必須說,事情會這樣得到非常複雜。

+0

你可以說我怎麼才能像列表視圖項目添加圖像像這樣lItem.SubItems.Add( 「C:\\ test.png」); 。我是新的c# –

+0

您只能在.Net中設置ListViewItem的圖標,而不是子項目。看看我發現的另一個問題,他們已經爲這個問題提供了很多解決方案。 =) –

+0

好的,謝謝,我會檢查它 –

9
private void ListView1_DrawColumnHeader(object sender, System.Windows.Forms.DrawListViewColumnHeaderEventArgs e) { 
    e.DrawDefault = true; 
} 

private void ListView1_DrawSubItem(object sender, System.Windows.Forms.DrawListViewSubItemEventArgs e) { 
    if (!(e.Item.SubItems(0) == e.SubItem)) { 
     e.DrawDefault = false; 
     e.DrawBackground(); 
     e.Graphics.DrawImage(My.Resources.Image1, e.SubItem.Bounds.Location); 
     e.Graphics.DrawString(e.SubItem.Text, e.SubItem.Font, new SolidBrush(e.SubItem.ForeColor), (e.SubItem.Bounds.Location.X + My.Resources.Image1.Width), e.SubItem.Bounds.Location.Y); 
    } 
    else { 
     e.DrawDefault = true; 
    } 
} 
-1

你可以通過爲圖像實現你自己的HttpHandler來做到這一點。這是一個實現IHttpHandler接口的.ashx文件。

所以,如果你建立一個名爲ImageHandler你可以在你的ListView聲明使用它,像這樣:[?我如何設置一個ListViewSubItem圖標]的

<asp:ListView 
    ID="ImageListView" 
    runat="server" 
    DataKeyNames="Id"> 
     <ItemTemplate>   
      <img id="img1" src='<%#"~/ImageHandler.ashx?Id=" + Eval("Id") %>' /> 
     </ItemTemplate> 
</asp:ListView>