2013-08-01 3 views
0

В VB.Net вы можете показать форму без ссылки на объект-объект перед ... vb.net сделать это с вами, но эта функция добавляет много проблем, например:vb.net auto instantiation (forms)

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 

Есть ли способ отключить это?

ответ

0

Нет никакого способа отключить это. Он называется экземпляром по умолчанию. Если вы не хотите его использовать, не используйте его. Я рекомендую создать новый экземпляр.

Dim f3 As New Form3 
f3.Show() 
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, имея только один конструктор, который требует переменную, для которой требуется ссылка на объект.

Этот трюк работает для меня как минимум. Я просто подумал, что просто добавлю его в качестве решения в случае, если кто-то другой столкнется с этим потоком по той же причине, что и я.