我先告诉你我的代码:
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中的FormClosing
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
所以我在调用Add Product表单时在我的主窗体中设置了enabled = false,当我关闭Add Product表单时启用了= true,但enabled = true将不起作用。
当我关闭我的添加产品时,它只隐藏添加产品表单但不启用主表单,主表单仍未启用。我的代码有问题吗?
答案 0 :(得分:1)
这一行是你的问题:
Dim frmMainIndex As New FormMainIndex
您正在实例化 新 FormMainIndex
。无论何时使用New
keyword,您都要创建一个全新且独立的对象。 frmMainIndex
与第一个打开FormAddProduct
表单的形式完全不同。
由于您已将FormAddProduct
所有者设置为FormMainIndex
表单,因此只需将所有者的Enabled
属性设置为True:< / p>
ButtonReset.PerformClick()
Lock()
Me.Owner.Enabled = True
Me.Owner = Nothing
Me.Hide()
此外,由于您的表单即将关闭,因此Me.Hide()
来电没有任何意义。
答案 1 :(得分:0)
因为您创建了FormMainIndex的新实例,所以frmMainIndex.Enabled已应用于此新实例,而不是创建FormAddProduct的实例。为什么不将FormAddProduct显示为对话框。像这样
Dim frmAddProduct As New FormAddProduct
frmAddProduct.ShowDialog(Me)