2011-04-09 92 views
1

我創建了一個圖像列表框,我想調整它們的大小。我已經得到了下來的方法,但我不能通過ListBox中的項目似乎循環:C#如何在列表框中循環顯示圖像

foreach (Image I in listbox1.items) 
{ 
    Resize(I, x, y) 
} 

我得到這個錯誤「無法施展System.String類型的對象鍵入System.Drawing.Image對象」。有任何想法嗎?

早些時候,我還用澆鑄在列表框中選擇的項目圖片:

Picturebox1.Image = (Image)listbox.selecteditem; 

我記得它的工作,但它不會了。我假設我記得代碼錯了,任何替代品?

+0

向我們展示ListBox.Items.Add的代碼,你在代碼的那一部分做錯了。 – servermanfail 2011-04-09 21:52:33

+0

將圖像放入ListBox沒有任何意義,它不知道如何顯示它們。很明顯,你把字符串放在裏面。你的代碼不能使用字符串。 – 2011-04-09 21:59:58

回答

0

你是ListBox.Items.Add'ing錯誤。添加Image對象,而不是圖像或URL或Image.ToString()的字符串路徑。

現在我得到它..你沒有做ListBox.Items.Add(圖片),否則你看到在列表框中「垃圾」,所以答案是創建一個包裝對象:

class ImageWrapper 
{ 
    public Image image; 
    public string displayName; 
    public override string ToString() 
    { 
    return displayName; 
    } 
} 

然後做

var iw = new ImageWrapper(); 
iw.image = <yourImage>; 
iw.displayName = "Text for listbox here"; 
ListBox.Items.Add(iw); 
+0

我已經有了列表框中的圖像,添加它們不是問題。它從列表框中獲取它們。 – Zizo47 2011-04-09 22:09:58

+0

等等,你說得對。圖像永遠不會在列表框中顯示名稱。那麼,這是沒有任何事情的半天沮喪。謝謝您的幫助 – Zizo47 2011-04-09 22:17:35