为自定义控件显示自定义图标?

12
在Visual Studio中创建自定义控件时,您会得到这个default toolbox icon丑陋的紫色齿轮作为您的控件图标,而不是自定义控件default toolbox icon。那么我该如何为我的控件更改图标呢?
2个回答

16
  1. 将你的图标(例如"icon.bmp" 16x16像素)放在自定义控件项目的根文件夹中。
  2. 在你的控件类之前加入这行代码:[ToolboxBitmap(typeof(yourControl), "yourControl.bmp")]

下面是你需要注意的进一步步骤:

  1. 验证你的位图具有以下属性: 高度为16像素 宽度为16像素 以16色bmp文件保存的位图
  2. 给它与你的自定义控件类相同的名称(即:yourControl.bmp)。
  3. 将它放在同一个目录中,然后将它作为你的程序集的嵌入式资源。
  4. 为了启用位图作为嵌入式资源,右键单击位图文件,选择“属性”菜单项。从属性页面上,将生成操作设置为嵌入式资源。
  5. 因此,当你把你的控件放在页面上时,工具箱会在程序集清单中搜索一个与控件名称相同的嵌入式位图,这就是为什么位图必须与你的控件类具有相同的名称的原因。

如需进一步讨论,请参见这里


这个答案是迄今为止最好的答案,非常详细!我刚刚让它工作了。对于其他无法正常工作的人,请确保您正在使用正确的命名空间!在我的新UserControl中,我从其他地方导入了它,并且它有一个不同的命名空间。我必须将其更改为新项目的命名空间(右键单击项目,转到属性,在应用程序选项卡下检查“默认命名空间”)。那应该与新UserControl代码中定义的命名空间匹配。 - Arvo Bowen
我在VS2013 Prof中使用了这个解释,在表单内我得到了漂亮的自定义图标。然而,在工具箱中,丑陋的默认用户控件图标仍然存在。 - bart s
这个网站 引用:请注意,控件的图标不会显示在包含控件项目的解决方案中。只有在创建了控件库的发布/调试二进制版本并将其作为 .dll 程序集从另一个项目导入后,才能看到该图标,这确实是真的。 - bart s

9

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