让我的userControl在工具箱上有自己的图标

dev*_*ium 7 .net c# vb.net controls winforms

我创建了一个直接从ErrorProvider继承的控件.我认为应用它的ToolboxBitmap属性足以让我的控件在工具箱上拥有与原始控件相同的图标,但事实并非如此.奇怪的是,就好像我将控件添加到表单中一样,它会像它应该的那样出现,但它不会改变工具箱的图标.我在这里错过了什么?我已经重新启动了visual studio,它保留了这种行为.

[ToolboxBitmap(typeof(ErrorProvider))]
public class ErrorProviderEx : ErrorProvider {
...
}
Run Code Online (Sandbox Code Playgroud)

AMi*_*ico 5

在Visual Studio 2008中,ToolBoxBitmap出于性能原因,指定的图标不会添加到当前解决方案中任何组件的工具箱中.使用标准的"齿轮"图标.如果通过"工具箱"..."添加项目..."对话框手动添加装配,将显示自定义图标,这是您遇到的行为.此外,当您将ErrorProviderEx拖到表单时,将使用您指定的图标,这也是您在注释中记下的行为.

请注意,在您的情况下,您正在使用,typeof(ErrorProvider)因此您不会遇到使用自定义位图的常见问题.

(Visual Studio 2005也可能出现这种情况.Visual Studio 2003通过显示图标来破坏我们.)(我个人不喜欢这种新行为.我愿意等待额外的一两秒让IDE检索图标对于解决方案中的所有控件和组件.我想知道是否有一个注册表黑客来显示图标.)