我可以在不制作DLL的情况下使用同一项目中的UserControl吗?

时间:2011-02-25 08:04:44

标签: c# .net visual-studio user-controls visual-studio-2005

我制作了一个用户控件,并且已经能够通过将其添加到C#代码中的表单来使用它。用户控件与主窗体位于同一VS2005项目中。

问题是我无法在gui编辑器([Design]窗口中)看到这个实现的用户控件。我尝试了很多东西但是我无法将用户控件添加到真实的表单设计中。

我阅读了一些关于创建控件lib dll然后将这个dll添加到工具箱的内容,但我不希望有一个额外的项目和一个额外的二进制文件。

如果两者都在同一个VS项目中,如何在表单设计中使用用户控件?我觉得这应该是可能的吗?

编辑1:

抱歉,我有Visual Studio 2005而不是2010

6 个答案:

答案 0 :(得分:12)

当它是同一项目的一部分时,当然可以在设计模式中使用UserControl

但请注意,如果您启用了“AutoToolboxPopulate”设置,它将仅显示在您的工具箱中。转到“工具”菜单,然后选择“选项”。展开“Windows窗体设计器”,然后单击“常规”。确保“AutoToolboxPopulate”属性设置为True。重建解决方案时,UserControl应显示在工具箱的顶部,随时可以添加到表单中。

或者,您可以手动将UserControl添加到工具箱中。为此,右键单击工具箱,然后从上下文菜单中选择“选择项目”。导航到您的控件,确保在列表中选中它,然后单击“确定”。

如果抛出异常(如MacX提到的那样),设计师仍会通知您。该控件仍会显示在工具箱中,您仍然可以尝试将其添加到表单中。

答案 1 :(得分:1)

正如APShredder已经提到的那样,控件应该自动出现在工具箱中。如果它不检查您的Visual Studio设置:

  

工具 - 选项 - Windows窗体设计器 - 常规 - AutoToolboxPopulate - True

有关更多信息,请阅读Walkthrough in the MSDN

答案 2 :(得分:0)

您应该能够在Winforms设计器中使用自定义用户控件。但是,您必须首先构建项目。您可以通过转到Build - >来完成此操作。构建解决方案或按F6。然后您的控件应出现在工具箱中。

答案 3 :(得分:0)

是,在工具箱中,右键单击并选择“选择项目...”。然后导航到“.NET Framework组件” - 您的控件应该列在那里。只需选择添加它们。

答案 4 :(得分:0)

控件应该没有问题,除非你在构造函数或Load-Event中抛出异常。 Designer无法正确显示控件。

答案 5 :(得分:0)

在VS2010中创建用户控件并对其进行编译后,VS会自动添加您的组件并使其在ToolBar上的命名空间中可见。 这可以在WPF和旧样式代码/组件......

中完成