2009-12-14 91 views
0

我將簡要解釋我希望我的程序執行的操作。如何訪問我的資源中的應用程序映像?

我在窗體上有很多圖像,我希望圖像源在MouseEnter事件上更改。

因此,如果用戶將鼠標移動到按鈕上,我希望按鈕看起來很亮。當然,我爲Image控件製作了兩個圖像。一個正常,一個發光。我試圖在mouseEnter上爲所有圖像創建一個事件,因爲我不想用60多個事件污染我的代碼,所有這些事情基本上都在做同樣的事情。

有人建議我做這樣的事情:

void HeroMouseEnter(object sender, EventArgs e) 
{  
    ((PictureBox)sender).Image = GetImage(((PictureBox)sender).Name)   
} 

老實說,這將工作究竟我怎麼需要它。但我有點困惑,關於GetImage()方法。

我該如何編碼?我的所有圖像,包括髮光和不發光的圖像都已添加到我的資源中。我怎麼會根據PictureBox的名字召喚他們?

我試着製作一個字典,其中的關鍵是pictureBox的名稱和值是資源文件,但沒有骰子。

請幫忙!

回答

1

是這樣的嗎?

public Image GetImage(string name) 
    { 
     switch (name) 
     { 
      case "PictureBox1": 
       return Properties.Resources.Picture1; 
      case "PictureBox2": 
       return Properties.Resources.Picture2; 
      default: 
       return null; 
     } 
    } 
+2

如果您的圖片框命名與您的資源完全相同,您可以使用反射來獲取它們,那麼您將不需要維護開關case語句:) – 2009-12-14 22:30:46