如何访问我的资源中的应用程序映像?

问题描述:

我将简要解释我希望我的程序执行的操作。如何访问我的资源中的应用程序映像?

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

因此,如果用户将鼠标移动到按钮上,我希望按钮看起来很亮。当然,我为Image控件制作了两个图像。一个正常,一个发光。我试图在mouseEnter上为所有图像创建一个事件,因为我不想用60多个事件污染我的代码,所有这些事情基本上都在做同样的事情。

有人建议我做这样的事情:

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

老实说,这将工作究竟我怎么需要它。但我有点困惑,关于GetImage()方法。

我该如何编码?我的所有图像,包括发光和不发光的图像都已添加到我的资源中。我怎么会根据PictureBox的名字召唤他们?

我试着制作一个字典,其中的关键是pictureBox的名称和值是资源文件,但没有骰子。

请帮忙!

是这样的吗?

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