我正在尝试使用我作为资源添加的图标作为按钮上的图像。我知道这是可能的,因为我可以通过设计师在其他项目中完成它。但是,我正在尝试使用代码执行此操作。我按照this question接受的答案中的步骤,将图标作为资源添加到我的项目中。资源名为CancelButtonIcon
。
现在,我正在尝试使用以下代码将该图标添加为标准按钮上的图像:
this.CancelButton.Image = (System.Drawing.Image)Properties.Resources.CancelButtonIcon;
但是,我收到一条错误消息:
Cannot convert type 'System.Drawing.Icon' to 'System.Drawing.Image'
在我使用设计器时Visual Studio自动生成的代码中,它看起来像这样:
((System.Drawing.Image)(resources.GetObject("SaveButton.Image")));
是通过“属性”窗口手动添加资源的结果。如何将此图标资源转换为图像,以便可以在按钮上使用?通过设计器添加它不是一个选项(此按钮是以编程方式创建的,因此在设计器中不存在。)
答案 0 :(得分:9)
您可以使用Icon.ToBitmap
方法来实现此目的。请注意,Bitmap
是Image
。
CancelButton.Image = Properties.Resources.CancelButtonIcon.ToBitmap();
答案 1 :(得分:1)
不知道为什么,但是当我尝试使用接受的答案的方法时,.ToBitmap()
调用给了我数组索引超出范围的异常。我通过这样做来解决这个问题:
System.Drawing.Icon.FromHandle(Properties.Resources.CancelButtonIcon.Handle).ToBitmap();