Форма включена в событии 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, и это моя форма FormClosing в 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
Поэтому я установил enabled = false в моей главной форме, когда она вызывает форму Add Product, и enabled = true, когда я закрываю форму Add Product, но enabled = true не будет работать.
Когда я закрываю свой продукт Add, он только скрывает форму Add Product, но не включает основную форму, основная форма все еще не включена. Что-то не так с моим кодом?
2 ответа
Эта строка - ваша проблема:
Dim frmMainIndex As New FormMainIndex
Вы создаете новый экземплярFormMainIndex
, Всякий раз, когда вы используете New
Ключевое слово вы создаете совершенно новый и независимый объект. frmMainIndex
это совершенно другая форма, чем первая, которая открыла FormAddProduct
форма.
Так как вы установили FormAddProduct
владелец вашего FormMainIndex
форма, просто установите владельца Enabled
вместо свойства true:
ButtonReset.PerformClick()
Lock()
Me.Owner.Enabled = True
Me.Owner = Nothing
Me.Hide()
Кроме того, ваш Me.Hide()
Вызов не имеет никакого смысла, так как ваша форма будет закрыта.
Поскольку вы создали новый экземпляр FormMainIndex, frmMainIndex.Enabled был применен к этому новому экземпляру, а не к тому, который создал ваш FormAddProduct. Почему бы вам не показать свой FormAddProduct в виде диалога. как это
Dim frmAddProduct As New FormAddProduct
frmAddProduct.ShowDialog(Me)