使用表单 B 启用表单 A 的对象
Enable object of Form A using Form B
我正在使用此代码在我的 form.load 事件中禁用表单 [A]
Public Sub disableAll(ByVal root As Control)
For Each root In root.Controls
If Not root.Name.ToString = "cmdLogin" Then
root.Enabled = False
End If
Next
End Sub
使用此代码disable(Me)
它按预期工作。
现在的问题是启用它,我有这段代码可以使用表单 [B] 中的命令按钮启用表单 [A] 中的对象
Public Sub enableAll(ByVal root As Control)
For Each root In root.Controls
If Not root.Name.ToString = "cmdLogin" Then
root.Enabled = True
Else
root.Hide()
End If
Next
End Sub
我用了enableAll(frmMain)
,enableAll(my.Forms.frmMain)
,enableAll(WindowsApplication1.frmMain)
但是其中 none 工作,我没有收到任何错误消息,并检查我的 VB.Net 2010 的 Intermediate Window
,frmMain.Menustrip1.Enabled.Tostring
设置为 True,而当我在 frmMain 中检查它,启用的 属性 设置为 false,这是为什么?
在 FormB 中,您需要使用当前显示的 FormA (frmMain) 的实例。您正在使用 frmMain 的默认实例(MS 做出的一个非常令人困惑和反 oop 的设计选择)。
您可以检索显示的 frmMain 实例,查看 Application.OpenForms 集合
在调用您的 enableAll 运行 此代码之前
Dim f = Application.OpenForms("frmMain")
If f IsNot Nothing then
enableAll(f)
End If
我正在使用此代码在我的 form.load 事件中禁用表单 [A]
Public Sub disableAll(ByVal root As Control)
For Each root In root.Controls
If Not root.Name.ToString = "cmdLogin" Then
root.Enabled = False
End If
Next
End Sub
使用此代码disable(Me)
它按预期工作。
现在的问题是启用它,我有这段代码可以使用表单 [B] 中的命令按钮启用表单 [A] 中的对象
Public Sub enableAll(ByVal root As Control)
For Each root In root.Controls
If Not root.Name.ToString = "cmdLogin" Then
root.Enabled = True
Else
root.Hide()
End If
Next
End Sub
我用了enableAll(frmMain)
,enableAll(my.Forms.frmMain)
,enableAll(WindowsApplication1.frmMain)
但是其中 none 工作,我没有收到任何错误消息,并检查我的 VB.Net 2010 的 Intermediate Window
,frmMain.Menustrip1.Enabled.Tostring
设置为 True,而当我在 frmMain 中检查它,启用的 属性 设置为 false,这是为什么?
在 FormB 中,您需要使用当前显示的 FormA (frmMain) 的实例。您正在使用 frmMain 的默认实例(MS 做出的一个非常令人困惑和反 oop 的设计选择)。
您可以检索显示的 frmMain 实例,查看 Application.OpenForms 集合
在调用您的 enableAll 运行 此代码之前
Dim f = Application.OpenForms("frmMain")
If f IsNot Nothing then
enableAll(f)
End If