引用包含在同一 VB.NET 项目中的用户控件

Posted

技术标签:

【中文标题】引用包含在同一 VB.NET 项目中的用户控件【英文标题】:Referencing user controls that are contained within the same VB.NET project 【发布时间】:2011-02-25 17:13:47 【问题描述】:

如果这篇文章是重复的,我深表歉意,但我在搜索时没有发现任何类似的内容。

我对 VB.NET 还很陌生,目前正在玩弄用户控件,找出好的编程实践。据我了解,要创建和使用 UserControl,我需要创建一个包含 UserControl 的项目,然后构建项目并使用该 DLL(将其添加到工具箱或其他方式)。

我的问题是:有没有办法让一个项目(一个上面有一堆东西的表单)包含一个用户控件,该用户控件写在 同一个项目内的 *.vb 文件中?如果您这样做,则永远不会生成 DLL(在我的情况下),可能是因为从未使用过 UserControl 并且只是省略了构建它。完全这样做可能是一种不好的做法吗?将 UserControl 作为唯一使用它的项目的一部分对我来说很有意义。有理由不这样做吗?

提前致谢! = )

解决方案: 默认情况下,Visual Studio 不会自动将您自己的控件包含到工具箱中!为了改变这一点,请转到工具>选项>Windows 窗体设计器>常规并将AutoToolboxPopulate 设置为True。下次构建项目时,您的新控件将出现在您的工具箱中。

【问题讨论】:

下一次,您可以回答自己的问题并接受它。 【参考方案1】:

在使用它的 WinForm 或 WPF 项目中包含 UserControl 是一个完全有效的设计决策。如果你这样做,那么 VS 将不会为 UserControl 创建 DLL;而是将 UserControl 内置到您的项目正在生成的程序集中。

如果您确实想在多个项目中重用 UserControl,那么您需要创建单独的项目来生成可重用的 DLL。

【讨论】:

谢谢!那么有没有办法将该控件添加到工具箱或类似的方式能够将我的 UserControl 拖放到表单中?也许我只是不擅长导航 Visual Studio(我主要来自 Unix 编程)? @Phonon 当您打开表单设计器时,应该将 UserControl 自动添加到项目的工具箱中。您应该在名为 Components 的选项卡中看到它。至少我这样做,但后来我使用的是 VS 2008(我认为这在 VS 2010 中是正确的)。

以上是关于引用包含在同一 VB.NET 项目中的用户控件的主要内容,如果未能解决你的问题,请参考以下文章

VB.Net & Access - 设置两个外键,引用同一个表/字段

在VB.NET中使用控件数组

vb.net 如何引用自定义类库

使用 ListView 控件保存/加载 My.Settings - vb.net

C#/VB.NET 获取Excel中的表单控件

VB.NET:标签与图片框