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

本文关键字:自定义 工具箱 图标 创建 用户 我的 控件 | 更新日期: 2023-09-27 18:34:22

我已经为此工作了一段时间,但似乎无法弄清楚!

我有一个类似于以下布局的解决方案...

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

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

<小时 />

我目前采取的步骤...

1. 创建位图图像:

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

2. 将图像嵌入为资源:

单击"解决方案资源管理器"窗口中的图像

,然后在属性窗口中将"生成操作"更改为"嵌入的资源"。

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

在命名空间声明之前,我添加了以下行...

internal class resfinder
{
}

4. 添加类属性"工具箱位图":

在类声明上方...

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 表单上使用它时,我仍然将蓝色的小齿轮作为工具箱图标。

<小时 />

来源:

  • 如何查找难以捉摸的工具箱位图图标
  • 如何:为控件提供工具箱位图
  • 显示自定义控件的自定义图标?

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

答案似乎很简单... 我其实一切都做对了!

不过有一件小事值得注意...

如果您使用的是引用,则不会显示自定义工具箱图标 到同一解决方案中的项目。

要修复/解决此问题,您需要执行以下操作...

添加对已编译(自定义控件的产品(的引用 项目(DLL 文件。

我最终在编译自定义控件项目后将其删除,然后添加对我想使用它的项目的引用。 完成后,我右键单击工具箱,然后单击"选择项目..."。 然后单击浏览并从那里加载 DLL。

现在,自定义工具箱图标显示得很好!