2013-02-21 58 views
0

我已經動態地創建了一個按鈕,現在我需要把圖像放在它上面,它保存在我的硬盤上。我試着做把圖像放在動態創建的按鈕上

btndynamic.image=((Sytem.Drawing.Image)(resources.GetObject("button.Image"))); 

但它給了我一個錯誤: 名稱「resouces」不會在目前情況下

存在,那麼我想:

btndynamic.image=Image.FromFile(@"images\image1.jpg"); 

再次給了我一個錯誤: 驗證文件是否存在於指定的位置。

那麼我做錯了什麼,或者有什麼其他的方式。

+0

如何創建和初始化'資源'變量? – 2013-02-21 12:01:43

+1

您是否將圖像添加到項目的資源中?如果是這樣,這個資源是如何命名的?另外,對於第二個選項,你給出了一個相對路徑,你真的在​​'debug'目錄下有一個'image'文件夾嗎? – ppetrov 2013-02-21 12:02:25

+0

關於'Image.FromFile'請記住代碼目錄與sturtup目錄不一樣 – 2013-02-21 12:04:47

回答

0

您可以在窗體上使用ImageList控件。此控件在運行時不可見,並允許您稍後添加需要在窗體中使用的圖像。 您可以在您的表單上添加此控件,完全按照添加按鈕的相同方式,您可以在Components選項卡下的工具箱中找到它。 在屬性中,您將看到Images屬性,您只需編輯它,然後您會看到一個對話框,您可以在其中從磁盤添加圖像資源。只需添加所需的內容,併爲添加的每個圖像設置屬性(如鍵)。

然後,所有你需要做的就是得到你需要從這個控制您的按鈕圖像:

你有這樣做的2種方式,通過使用索引

dynamicButton.Image = imageList1.Images[index]; 

或關鍵

dynamicButton.Image = imageList1.Images["your_image_key"]; 

這樣您的圖片可以被包含在你的程序集,您不必擔心路徑

,如果你需要了解它的更多信息,請點擊以下鏈接:

http://social.msdn.microsoft.com/Forums/eu/csharplanguage/thread/9cda50a5-8eba-4e1f-87ee-7486352c0907

How to use imageList Control

+0

可以請你解釋一下從未使用過的imagelist控件。謝謝 – Kashif 2013-02-21 12:22:18

+0

編輯我的文章與一些關於如何使用它的更多信息 – ppetrov 2013-02-21 12:36:18

0

您可以將圖像添加到您的資源,然後單擊按鈕圖片屬性分配給它這樣的:

NewButton.Image = global::YOURPROJECTNAME.Properties.Resources.YOURRESOURCENAME;