在我的项目中,我创建了一个用户控件。在构建项目后,我需要将它放入工具箱,并将其用作普通控件,但我无法这样做。 UserControl
在我的项目命名空间中,我尝试在右键菜单中选择 选择项目
,但我没有找到添加它的方法。
在我的项目中,我创建了一个用户控件。在构建项目后,我需要将它放入工具箱,并将其用作普通控件,但我无法这样做。 UserControl
在我的项目命名空间中,我尝试在右键菜单中选择 选择项目
,但我没有找到添加它的方法。
我曾经无法使它们自动添加到工具箱中,就像在VS2008/2005中一样。
实际上,有一个选项可以阻止工具箱自动填充!
转到“工具”>“选项”>“Windows表单设计器”>“常规”
在列表底部,你会找到“工具箱”>“AutoToolboxPopulate”,在新安装中默认为False。将其设置为True,然后重新构建解决方案。
嘿,你的解决方案中的用户控件应该会自动添加到工具箱中。
你可能还需要重新加载解决方案。
在工具栏上右键单击,然后在上下文菜单中点击“选择项”。将弹出一个带有已注册组件的对话框。在此对话框中,单击“浏览”以选择包含您想要使用的用户控件的程序集。
提示:在此之前应该先注册该程序集。
我发现用户控件必须有一个无参构造函数,否则它将不会显示在列表中。至少在vs2005中是这样的。
使用 VS 2010:
假设您有一个 Windows.Forms 项目。 您添加了一个用户控件(称为 MyControl)到该项目中,并对其进行了设计。 现在您想将其添加到工具箱中。
只要项目成功构建一次,它就会出现在您的 Framework 组件中。右键单击工具箱以获取上下文菜单,选择“选择项目...”,并浏览到您控件的名称(MyControl)位于“.NET Framework 组件”选项卡下。
与使用 dll 的优势:您可以在与窗体相同的项目中编辑控件,并且窗体将与新控件一起构建。但是,该控件仅对此项目可用。
注意:如果控件存在构建错误,请在继续处理包含的窗体之前解决这些错误,否则设计器可能会崩溃。
我有许多用户控件,但其中一个拒绝在工具箱中显示,即使我重建了解决方案并在选择项目...对话框中进行了勾选。
解决方案:
注意这还需要您启用AutoToolboxPopulate选项。如@DaveF答案所建议的。
备选解决方案:我不确定这是否有效,因为我已经解决了我的问题,但是如果您取消选中选择项目...对话框中的用户控件,然后点击确定,再打开它并选中用户控件。那也可能行得通。
在您的原始项目中,选择文件|导出模板
然后选择ItemTemplate并按照向导进行操作。
将您的用户控件移动到单独的ClassLibrary中(并修复命名空间等)。
从需要它的项目中添加对类库的引用。别费心安装GAC或其他东西,只需使用DLL文件即可。
我不建议将用户控件放在普通的工具箱中,但可以这样做。请参见@Arseny的答案。
public class MyComboDropDown : ComboDropDownComon<MyType>
{
public MyComboDropDown() { }
}
MyComboDropDown将不允许在其上打开设计器,并且不会显示在工具箱中。 为什么?因为基础控件在编译MyComboDropDown时尚未编译。 您可以进行修改:
public class MyComboDropDown : MyComboDropDownBase
{
public MyComboDropDown() { }
}
public class MyComboDropDownBase : ComboDropDownComon<MyType>
{
}
重新编译对我有用!
我的设计师遇到了32位与64位的问题。在遵循无法将64位程序集中的控件添加到工具箱或在Visual Studio IDE中使用设计器 MS KB文章中的说明后,我成功地将控件添加到了工具箱中。