要在一个菜单项中添加图标,您可以重载该MenuItem的DrawItem事件,在该事件中重绘该MenuItem。
在MSDN中有一个关于DrawItem的示例:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwindowsformsmenuitemclassdrawitemtopic.asp在一个菜单项中添加图标的主要步骤如下:
1. 设置该MenuItem的OwnerDraw属性为true。
2. 重载该MenuItem的MeasureItem事件,在其中设置该MenuItem的大小,如下例所示:
private void menuItem3_MeasureItem(object sender,MeasureItemEventArgs e)
{
e.ItemHeight = 40;
e.ItemWidth = 100;
}
3. 重载该MenuItem的DrawItem事件,在其中重绘该MenuItem。如添加一个图标可参考下例:
private void menuItem3_DrawItem(object sender, DrawItemEventArgs e)
{
Image Image1 = new Bitmap("..\\..\\bitmap1.bmp");
e.Graphics.DrawImage(Image1,new Rectangle(e.Bounds.X, e.Bounds.Y, Image1.Height, Image1.Width));
}
在MSDN中有一个关于DrawItem的示例:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwindowsformsmenuitemclassdrawitemtopic.asp在一个菜单项中添加图标的主要步骤如下:
1. 设置该MenuItem的OwnerDraw属性为true。
2. 重载该MenuItem的MeasureItem事件,在其中设置该MenuItem的大小,如下例所示:
private void menuItem3_MeasureItem(object sender,MeasureItemEventArgs e)
{
e.ItemHeight = 40;
e.ItemWidth = 100;
}
3. 重载该MenuItem的DrawItem事件,在其中重绘该MenuItem。如添加一个图标可参考下例:
private void menuItem3_DrawItem(object sender, DrawItemEventArgs e)
{
Image Image1 = new Bitmap("..\\..\\bitmap1.bmp");
e.Graphics.DrawImage(Image1,new Rectangle(e.Bounds.X, e.Bounds.Y, Image1.Height, Image1.Width));
}
能告诉怎样写吗?那个事件委托,就是"+="的代码?
但重画正常所付出的代价是其它菜单都在点击一级菜单后不弹出,当鼠标经过菜单所在位置才能看见菜单,其它的程序也是一样情况,连"我的电脑"里的快捷菜单都出现这种情况。将程序关闭后还是一样,甚至注销WINDOW都还是一样,非要重启后才正常。
用这个类库!
可以做出类例VS.NET的菜单.
谢谢,研究一下TO: gordenfl(可爱)
我也不知道为什么会出现内存不足,我的内存是192M的,而且当时我只打开C#,其它应用程序都没打开。