2016-12-06 62 views
0

我的代碼仍然執行時沒有使用函數InitializeComponent(),如果我調用private sub AddGA_Shown中的函數,我的所有其他函數將不會打印,運行和工作。我不明白爲什麼會發生這種情況,因爲在我沒有撥打InitializeComponent()時,我的所有其他表格都不會顯示該表格中的組件。InitializeComponent not in code,still excutes

Private Sub AddGA_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown 


    showTabGeneralNOAD() 

End Sub 

Private Sub showTabGeneralNOAD() 

    GAMailAddressTxt.Text = "none" 
    GAPasswordLastChangeTxt.Text = "none" 
    GAAccountStatusBox.Text = "active" 
    GADiscriptionTxt.Text = "Not an AD Account" 

End Sub 

Private Sub cancelBtn_Click(sender As Object, e As EventArgs) Handles cancelBtn.Click 

    Me.Close() 

End Sub 

This is how the form looks like with the InitializeComponent

回答

0

如果添加一個構造 - Public Sub New()到您的形式 - 它會自動插入你的InitializeComponent方法。

當您不提供自己的構造函數時,它會自動爲您生成。

當您創建此表單的實例時,構造函數將運行並初始化表單的所有組件。 MyBase.Shown發生得多晚,所以打電話InitializeComponent將打破事情。您可以查看錶單事件訂單here

+0

我所有的其他形式都有自己的構造函數,只有一個。但我從來沒有注意到它會自動生成'InitializeComponent'。謝謝 – Jacky

+0

@Jacky:設計者/自動生成的代碼位於'yourForm.Designer.vb'文件中。 –