然而,这些UserControls并没有显示在工具箱中,因此无法将其拖入窗体中。
我已经尝试了重建,也删除了“bin”目录以强制重新构建。
如何让VS2008在工具箱中显示我的UserControls?
请检查这个设置:
工具(Tools) > 选项(Options) > 窗体设计器(Windows Forms Designer) > 常规(General): 自动填充工具箱(AutoToolboxPopulate)
它应该被设置为True以使此功能生效。
构建项目以确保它能够编译。
在您想要用户控件的表单上,打开工具箱,右键单击并选择“选项”。
浏览到您在步骤1中编译的.exe或.dll。
确保您的用户控件旁边有一个勾号,然后按“确定”。
您的用户控件应该出现在工具箱中,所以将它拖放到您的表单中。
在我的情况下,AutoToolboxPopulate已经设置好了(Visual C# 2010 Express)。
但是,我必须从工具箱的属性中激活“显示全部”(右键单击),才能真正看到我的新用户控件。
到目前为止,我没有关于用户控件不显示在工具箱中的问题。构建项目时它会自动显示出来。但今天却突然失效了。我尝试了以下解决方法,但仍然无法解决:
所以经过几个小时的尝试却毫无进展,最后我创建了一个新的WPF窗口项目并使用默认名称添加了一个用户控件。构建该项目后,用户控件就像以前一样出现了。
我开始怀疑我的项目或WPF窗口文件可能有问题。因此删除了该项目,重新创建了一个新项目并添加了一个新控件。但构建项目后仍然未能解决问题。
唯一与之前不同的是我给项目取了一个带空格的名称:“WPF 应用程序”。
我再次删除该项目,重新创建了一个名为“WPFApplication”的项目而没有空格,并添加了一个用户控件。构建该项目后,用户控件正常出现。
如果您希望用户控件在构建时自动显示在工具箱中,请勿在项目名称中使用空格。希望本文可以帮助其他人节省大量浪费的时间。
用户控件未显示在工具箱中的另一个原因是它们没有默认构造函数。
如果您正在使用 ToolStripItems
(如ToolStripStatusLabel
),想要让您的控件显示在下拉菜单中(例如来自StatusStrip
的菜单),您需要将类设置为 public
,然后构建解决方案。
同时不要忘记为您的类添加设计器属性,像这样:
using System.Windows.Forms.Design;
[ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.StatusStrip)]
public class MyStatusLabel : ToolStripStatusLabel
{
}
我曾经遇到过同样的问题。在大量搜索后,我没有找到任何解决方法,但偶然间我发现,在你创建用户控件所在的同一项目中,当你单击工具箱并勾选“显示全部”时,一个与你的项目同名的组将出现在工具箱的顶部,你可以在其中找到你的用户控件。 现在你可以将你的控件添加到你想要的表单中了!