2016-09-23 61 views
0

我會告訴你我的代碼第一:表中的FormClosing事件未啓用工作

Private Sub AddProductToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AddProductToolStripMenuItem.Click 
    Me.Enabled = False 
    Dim frmAddProduct As New FormAddProduct 
    frmAddProduct.Show() 
    frmAddProduct.Owner = Me 
End Sub 

這是我的主窗體調用addProduct命令的形式,這是我在addProduct命令

Private Sub FormAddProduct_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing 
    ButtonReset.PerformClick() 
    Lock() 
    Me.Owner = Nothing 
    Me.Hide() 
    Dim frmMainIndex As New FormMainIndex 
    frmMainIndex.Enabled = True 
End Sub 

的FormClosing所以當我調用添加產品表單時,我在主窗體中設置了enabled = false,當關閉我的添加產品窗體時enabled = true,但啓用= true將不起作用。

當我關閉我的添加產品時,它只隱藏添加產品表單但未啓用主表單,主表單仍未啓用。我的代碼有問題嗎?

回答

1

這條線是你的問題:

Dim frmMainIndex As New FormMainIndex 

您實例化一個FormMainIndex。每當您使用New keyword時,您都會創建一個全新的獨立對象。 frmMainIndex與第一個打開FormAddProduct表單的表單完全不同。

既然你已經設置的FormAddProduct業主對您的FormMainIndex形式,只是主人的Enabled屬性設置爲True,而不是:

ButtonReset.PerformClick() 
Lock() 
Me.Owner.Enabled = True 
Me.Owner = Nothing 
Me.Hide() 

此外,您的通話Me.Hide()沒有任何意義,因爲你的表格即將關閉。

0

因爲您創建了FormMainIndex的新實例,frmMainIndex.Enabled已應用於此新實例,而不是創建您的FormAddProduct的實例。你爲什麼不把你的FormAddProduct作爲一個對話框顯示出來?這樣

Dim frmAddProduct As New FormAddProduct 
frmAddProduct.ShowDialog(Me)