为我的自定义用户控件创建一个自定义的工具箱图标

4

我一直在这方面努力工作,但似乎无法弄清楚!

我有一个解决方案,其布局如下...

Solution 'Gen' (2 projects)
'-> MyControls
    '-> graphics
        '-> UserControl1.bmp
    '-> UserControl1.cs
'-> Gen
    '-> MainGUI.cs

我想简单地制作一个工具箱图标,这样我就可以在我的工具栏上看到一个漂亮的图标,而不是默认的蓝色齿轮(工具箱图标)。


我目前所采取的步骤...

1. 创建位图图像:

我创建了一个16x16像素的图像,它是16种颜色(4位)。

2. 将图像嵌入为资源:

点击“解决方案资源管理器”窗口中的图像,然后在属性窗口中将“生成操作”更改为“嵌入式资源”。

3. 添加一个内部类,用于修复GetImageFromResource()方法中的错误:

在名称空间之前加入以下行...

internal class resfinder
{
}

4. 添加类属性 'ToolboxBitmap':

在类声明的上方...

public partial class UserControl1 : UserControl

我添加了以下行...
[ToolboxBitmap(typeof(resfinder), "Gen.graphics.UserControl1.bmp")]

5. 构建项目:

在“构建”菜单下,我使用了“重新生成解决方案”。

整个代码块:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

internal class resfinder
{
}

namespace Gen
{
    [ToolboxBitmap(typeof(resfinder), "Gen.graphics.UserControl1.bmp")]
    public partial class UserControl1 : UserControl
    {
        public UserControl1()
        {
            InitializeComponent();
        }
    }
}

结果:

当我试图在MainGUI.cs表单上使用它时,仍然出现了类似工具箱图标的小蓝色齿轮。


参考资料:

1个回答

3
似乎答案很简单...我实际上做得非常正确!但值得注意的是,如果您正在使用同一解决方案中的项目的引用,则自定义工具箱图标将不会显示。要解决/绕过此问题,您需要执行以下操作...添加对编译的(自定义控件项目的产品)DLL文件的引用。最终,我删除了自定义控件项目并在想要使用它的项目中添加了一个引用。然后我在工具箱中右键单击,点击“选择项目...”,然后点击“浏览”并从那里加载DLL。现在,自定义工具箱图标正常显示!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接