如何在VB.net中创建嵌套的用户控件?

时间:2013-12-29 16:47:58

标签: vb.net winforms user-controls

我的vb.net应用程序中有以下类:

Form1中 的UserControl1 LnkLabel

Usercontrol1是一个用户控件,并不包含任何额外的代码。 LnkLabel是一个继承Forms.Label的类。它的代码如下:

Public class LnkLabel
Inherits Label
Sub clk handles me.click
Process.start(text)
End sub
End class

当我将一个LnkLabel实例添加到usercontrol1时,我收到错误"类型LnkLabel未定义" uc1.designer.vb中有三个错误实例。如何解决这些错误? 注意: Visual Studio 2010 .Net FW 3.5

编辑: usercontrol1不包含可能导致错误的任何代码。它只是添加到项目中的新用户控件。 LnkLabel由设计者添加到UC1,而不是在运行时使用代码。 班级名称是LnkLabel,而不是" LinkLabel"。

1 个答案:

答案 0 :(得分:0)

我发现解决此类问题的最简单方法是直接打开Designer.vb文件。

要执行此操作,请从“项目”菜单中选择“显示所有文件”,然后展开“UserControl2”。双击UserControl2.Designer.vb文件。

您还应该可以通过双击编译错误列表中的错误来实现目标。

在那里,搜索UserControl1或uc1的定义,无论它可能被调用(确保您在类型定义区域,而不是属性分配区域)。

查看定义可能会给你一个关于问题的即时线索(是否在错误的命名空间中;用户控件的名称在创建之后是否更改,但更改未传播到此表单;等等)

如果问题不明显,请使用VS intellisense帮助您获得正确的课程。我通常清除以前的类型定义并开始键入我知道它应该是的名称(即UserControl),然后从Intellisense中选择适当的值。

选择不同的类(或更正类选择)将需要更改控件实例代码,并且还可能需要更改某些属性(我通常只删除我不确定的属性并直接更新控件在设计师)。

在切换回设计器之前,请确保保存更改,并在可能的情况下编译应用程序。