日期:2014-05-17  浏览次数:20875 次

WinForm中自定义控件的ToolBox图标问题
我知道这个问题不是第一次提出了,Goolge了以后看了很多贴子,但是仍然没有解决我的问题。现在就把这个问题在这里详细说一下,希望能找到正确的方案。

目的:给自定义控件(Custom Control)添加ToolBox自定义图标,而不是默认的齿轮图标。

通过在Google,查询到的方法总结如下:

在工程文件中通过“添加”功能,加入一个BMP文件作为自定义图标
图标的像素必须是16x16
图标的色彩深度必须是24bit
图标的名称必须和自定义控件类名称相同(在这里为AlarmControl)
图标必须放在项目的根目录下(也有说法说可以在项目下新建文件夹,再将图标放入),两种方法均试验过

在控件类前面添加ToolboxBitmap属性,部分代码如下:

namespace AlarmClockControl
{
    [ToolboxBitmap(typeof(AlarmControl),"AlarmControl.BMP")]
    public partial class AlarmControl : Control
    {
        private DateTime alarm = DateTime.MaxValue;
        private static DateTime now = DateTime.Now;
    ...


在做了上面所说的所有一切并重新编译后,我发现,ToolBox里自定义控件的图标还是他娘的齿轮,赤裸裸的齿轮!!!

各位高手,我上面所提及的方法和步骤有什么遗漏没?怎样才能让我的自定义图标生效啊?希望赐教!

------解决方案--------------------
图标文件在哪里是不重要的,大小和颜色深度也是不重要的,名称也无所谓,关键是要作为资源嵌入。
项目资源管理器中在图标文件上点击右键,查看文件属性,属性中的“生成操作”改为“嵌入的资源”