1

在 VB.Net 中,您可以在没有 crete 对象引用的情况下显示表单... vb.net 对您执行此操作,但是,该“功能”会产生许多问题,例如:

Public Class Form1

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Form3.Show()
End Sub
End Class

Public Class Form3
    Inherits System.Windows.Forms.Form
End Class

有什么办法可以禁用它吗?

4

2 回答 2

1

不,没有办法禁用它。它被称为默认实例。如果您不想使用它 - 不要使用它。我建议创建一个新实例。

Dim f3 As New Form3
f3.Show()
于 2013-08-01T17:37:51.853 回答
0

我正在寻找一个解决方案来做同样的事情并遇到了这个线程。

看到没有办法摆脱默认实例,它会让你在没有对象引用的情况下调用表单的“哎呀”,我只好这样做了:

''' <summary>
''' This overrided of Sub New is only here to force you to create an object reference. Passing true or false will make no difference.
''' </summary>
Public Sub New(MustInstanciate As Boolean)
    ' This call is required by the designer.
    InitializeComponent()
    ' Add any initialization after the InitializeComponent() call.
End Sub

这迫使您创建一个对象引用,因为它摆脱了隐式的 Sub New,只有一个需要一个变量的构造函数,它需要一个对象引用。

这个技巧至少对我有用。我只是想我会添加它作为解决方案,以防其他人出于与我相同的原因遇到此线程。

于 2015-11-03T22:24:44.143 回答