问题描述
我知道有很多类似的问题,你们都可能认为这是重复的,但是不……这个问题有所不同。
当我向项目添加自定义用户控件并重建它时,该控件将添加到工具箱中。如果我尝试添加另一个,它不会显示在工具箱中。如果我关闭Visual Studio并重新打开它,则第一个控件也已从工具箱中删除,并且将不再显示。从现在开始,该项目已损坏并且未添加任何控件,remove + readded将永远显示在工具箱中。因此,我创建了一个新项目,它从头开始。
在出现此提示之前,我先说一下:Automatically Populate ToolBox
是True
。没有任何办法可以解决这个问题。生成项目/解决方案,重建,清理+重建,重新启动VS,重新启动计算机,卸载并重新加载项目,将工具箱设置回默认值。什么都行不通。
任何想法?
解决方法
您必须记住,设计人员在设计时会调用代码构造函数和其他一些方法。
如果您构建代码,但该控件未出现并且尚未被属性隐藏,则可能是您编写的代码与设计器不兼容。例如,由于代码不正确,该控件可能在设计模式下引发异常。
该属性为[ToolboxItem(false)]
。如果您有一个隐藏它的基类,那么如果没有另外指定,它也将被隐藏在派生类中。
如果在另一个组件中使用该控件,您将遇到相同的问题。如果它无法编译并正确运行,您将看不到它。
调试此类问题的技巧是,从第二个Visual Studio实例附加一个调试器,以查找在代码中引发异常的位置。
如果控件在运行时不起作用,最好先修复该问题,就像它还可以解决设计问题一样,则调试起来更简单。
否则,您必须确保项目依赖项正确。该工具箱将仅显示当前项目(或我认为本身)所引用的DLL中的组件。