2016-09-23 1 views
0

ich Sie meinen Code zeigen zuerst:Formular Aktiviert in Formclosing-Ereignis funktioniert nicht

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 

Das ist mein Hauptformular ist AddProduct Form zu nennen, und das ist mein Formclosing in 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 

Also habe ich in meinem Hauptformular enabled = false gesetzt, wenn es Add Product form aufruft, und enabled = true, wenn ich mein Add Product Formular schließe, aber enabled = true funktioniert nicht.

Wenn ich mein Add-Produkt schließe, wird nur das Add Product-Formular ausgeblendet, aber das Hauptformular wird nicht aktiviert, das Hauptformular ist noch nicht aktiviert. Stimmt etwas mit meinem Code nicht?

Antwort

1

Diese Linie Ihr Problem:

Dim frmMainIndex As New FormMainIndex 

Sie sind eine neueFormMainIndex instanziieren. Wann immer Sie die New keyword verwenden, erstellen Sie ein völlig neues und unabhängiges Objekt. frmMainIndex ist eine völlig andere Form als die erste, die Ihre FormAddProduct Form geöffnet hat.

Da Sie der Eigentümer s‘FormAddProduct festgelegt haben, um Ihre FormMainIndex Form, stellen nur die Enabled Eigenschaft auf True Eigentümer statt:

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

Auch Ihr Me.Hide() Anruf keinen Sinn, da Ihre Form macht ist im Begriff, geschlossen zu sein.

0

Da Sie eine neue Instanz von FormMainIndex erstellt haben, wurde frmMainIndex.Enabled auf diese neue Instanz angewendet, nicht auf die Instanz, die Ihr FormAddProduct erstellt hat. Warum zeigen Sie Ihr FormAddProduct nicht als ein Dialogfeld an? wie diese

Dim frmAddProduct As New FormAddProduct 
frmAddProduct.ShowDialog(Me)