1

我在 VB.Net 中有一个多项目解决方案。我有一个定制的表格,其他表格可以继承。它在一个名为“CustomForm”的单独项目中,没有特殊的图形效果,它与通用的 Windows 窗体相同,只是处理关闭的方式不同。我有一个名为“TestProject1”的项目,其中有一个名为 Form1 的表单,它继承了 CustomForm。在第三个项目“TestManager”中,您可以从 TestProject1 添加一个 Form1 的实例,并将其所有权设置为 TestManager。我在 TestManager 中使用以下代码进行了此设置:

Public Shared Sub CreateForm(ByVal frm As CustomForm.CustomForm)

    frm.Owner = TestManager.TestManager

    frm.Show()
End Sub

但是我收到以下错误:“Form1”是“TestProject1”中的一种类型,不能用作表达式。

编辑:更多细节:

Form1 目前没有任何内容。将 TestManager 想象成一个桌面,其中添加了来自另一个项目的表单。TestManager 引用了TestProject1,并使用了代码:CreateForm(TestProject1.Form1),它利用了上述方法。现在 form1 引用并继承了 CustomForm。输入代码时会显示此错误,因此我什至无法构建项目。

4

2 回答 2

4

由于我自己的愚蠢,我监督了这样一个简单的错误。我没有创建表单的对象或实例,这就是问题所在。只需将“新”添加到该行。

CreateForm(New TestProject1.Form1())
于 2013-07-16T21:24:09.723 回答
2

这里只是一点帮助。在我办公室实习时遇到了这个问题。原因:他重载了构造函数(很好),但他没有创建默认构造函数。

似乎如果你想使用自己的类而不发送参数,那没关系,但是如果你想要有多个构造函数并且你不添加默认构造函数(没有参数的构造函数),那么这个错误会上升。

他正在使用 VS 2010 Pro

于 2015-06-16T21:47:05.880 回答