请问如何为一个类添加资源??

yefeng238 2003-08-22 10:45:02
本人在想为子菜单添加图标(C#中),
在imagList中加入了HELP.bmp,同时也把HELP.bmp文件拉到本程序的子文件夹里,
但是还出现以下错误:
未处理的异常: System.ArgumentException: 在类“HelpMenu”中未能找到资源“HelpMenu.HELP.bmp”。
请高手指点,谢谢!

原代码如下:
using System;
using System.Drawing;
using System.Windows.Forms;
class HelpMenu: Form
{
private System.Windows.Forms.ImageList imageList1;
private System.ComponentModel.IContainer components;
Bitmap bmHelp;
public static void Main()
{
Application.Run(new HelpMenu());
}
public HelpMenu()
{
Text = "Help Menu";
bmHelp = new Bitmap(GetType(), "HelpMenu.HELP.bmp");
Menu = new MainMenu();
Menu.MenuItems.Add("&Help");
MenuItem mi = new MenuItem("&Help");
mi.OwnerDraw = true;
mi.Click += new EventHandler(MenuHelpOnClick);
mi.DrawItem += new DrawItemEventHandler(MenuHelpOnDrawItem);
mi.MeasureItem +=
new MeasureItemEventHandler(MenuHelpOnMeasureItem);
Menu.MenuItems[0].MenuItems.Add(mi);
}
void MenuHelpOnMeasureItem(object obj, MeasureItemEventArgs miea)
{
miea.ItemWidth = bmHelp.Width;
miea.ItemHeight = bmHelp.Height;
}
void MenuHelpOnDrawItem(object obj, DrawItemEventArgs diea)
{
Rectangle rect = diea.Bounds;
rect.X += diea.Bounds.Width - bmHelp.Width;
rect.Width = bmHelp.Width;
diea.DrawBackground();
diea.Graphics.DrawImage(bmHelp, rect);
}
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Resources.ResourceManager resources = new System.Resource
.Resource
Manager(typeof(HelpMenu));
this.imageList1 = new System.Windows.Forms.ImageList(this.compon
nts);
//
// imageList1
//
this.imageList1.ColorDepth = System.Windows.Forms.ColorDepth.Dep
h8Bit;
this.imageList1.ImageSize = new System.Drawing.Size(16, 16);
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListSt
eamer)(re
sources.GetObject("imageList1.ImageStream")));
this.imageList1.TransparentColor = System.Drawing.Color.Transpar
nt;
//
// HelpMenu
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(368, 278);
this.Name = "HelpMenu";
}
void MenuHelpOnClick(object obj, EventArgs ea)
{
MessageBox.Show("Help not yet implemented.", Text);
}
}
...全文
60 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
BLGT 2003-09-30
  • 打赏
  • 举报
回复
把名字空间加前面
chensan 2003-09-29
  • 打赏
  • 举报
回复
奇怪,我也碰到这个问题。
Brunhild 2003-08-23
  • 打赏
  • 举报
回复
应该是设置为"嵌入的资源",然后用类似的语句调用:

System.Drawing.Bitmap bm=new System.Drawing.Bitmap(this.GetType(),"App.ico");
this.pictureBox1.Image =bm;

Brunhild 2003-08-23
  • 打赏
  • 举报
回复
应该是设置为"嵌入的资源"
popcorn 2003-08-23
  • 打赏
  • 举报
回复
你要将图片包括在项目中,并且在属性中选择"编译为资源文件".
qqq123 2003-08-23
  • 打赏
  • 举报
回复
如果你用的是VS.Studio要将HelpMenu.HELP.bmp添加到工程里并将属性Build Action属性设置为Embedded Resource,并保证namesapce 与HelpMenu的一致。

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧