2009-10-06 50 views
1

在選擇事件後的樹形視圖中,我使用圖像填充列表視圖。
我想定製這些圖像的格式,並在每個圖像周圍放置一個黑色邊框。在列表視圖中爲圖像繪製邊框

private void TreeView1_Select(object sender, EventArgs e) { 
     if (folder != null && System.IO.Directory.Exists(folder)) { 

      DirectoryInfo dir = new DirectoryInfo(@folder); 
      foreach (FileInfo file in dir.GetFiles()) { 
       try { 
        imageList.Images.Add(Image.FromFile(file.FullName)); 
       } catch { 
        Console.WriteLine("This is not an image file"); 
       } 
      } 

      for (int j = 0; j < imageList.Images.Count; j++) { 
       this.ListView1.Items.Add("Item" + j); 
       this.ListView1.Items[j].ImageIndex = j; 
      } 

      this.ListView1.View = View.LargeIcon; 
      this.ListView1.LargeImageList = imageList; 
      this.ListView1.DrawItem += 
       new DrawListViewItemEventHandler(ListView1_DrawItem); 

     } 
    } 

    private void ListView1_DrawItem(object sender, DrawListViewItemEventArgs e) 
    { 

    } 
+0

嘿rockrule,你可以使用編輯器中的代碼按鈕來格式化你的代碼。 – 2009-10-06 07:49:41

+0

感謝格雷格,我已格式化。 – rockrule 2009-10-06 07:52:16

+0

@rockrule,提供的代碼是好的,但你能否也請說一個問題?你想要做什麼? – 2009-10-06 08:00:17

回答

1

我就從文件加載圖像後立即使用Graphics對象添加邊框:

編輯:修改了代碼,這對我的作品......

private void TreeView1_Select(object sender, EventArgs e) { 
     if (folder != null && System.IO.Directory.Exists(folder)) { 

      DirectoryInfo dir = new DirectoryInfo(@folder); 
      foreach (FileInfo file in dir.GetFiles()) { 

       Image img = new Bitmap(Image.FromFile(file.FullName)); 
       using (Graphics g = Graphics.FromImage(img)){ 
        g.DrawRectangle(Pens.Black, 0, 0, img.Width - 2, img.Height - 2); 
       } 
       imageList.Images.Add(img); 

注意:圖像複製的目的;如果我修改代碼以

Image img = (Bitmap)Bitmap.FromFile("test.bmp"); 

如意見建議,我得到一個異常說「圖形對象不能從具有索引像素格式的圖像創建的。」

+0

嗨orsogufu,謝謝,給定的代碼對圖像沒有任何影響。我必須設置屬性嗎?.pls幫助 – rockrule 2009-10-06 08:17:07

+0

我會將開始「Image img = ...」的行改爲'位圖img =(位圖)Bitmap.FromFile(file.FullName);'。您的版本加載該文件,然後製作一個Bitmap副本。 – MusiGenesis 2009-10-06 08:58:27

+0

@MusiGenesis:感謝您的評論,但我正在製作一份副本(請參閱編輯答案)。如果您知道如何避免錯誤而不做複製,請告訴我! – 2009-10-06 09:07:45