在VB.NET中,可以使用以下方法获取所有打开的表单并在每个表单下调用同名的子程序:
Public Class FormManager
Public Shared OpenForms As New List(Of Form)()
Public Shared Sub AddForm(ByVal form As Form)
OpenForms.Add(form)
End Sub
Public Shared Sub RemoveForm(ByVal form As Form)
OpenForms.Remove(form)
End Sub
End Class
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
FormManager.AddForm(Me)
End Sub
Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As FormClosedEventArgs) Handles MyBase.FormClosed
FormManager.RemoveForm(Me)
End Sub
For Each form As Form In FormManager.OpenForms
Dim methodName As String = "SubName" ' 替换为子程序的名称
Dim methodInfo As System.Reflection.MethodInfo = form.GetType().GetMethod(methodName)
If methodInfo IsNot Nothing Then
methodInfo.Invoke(form, Nothing)
End If
Next
上述代码会遍历FormManager类的OpenForms列表,对于每个表单,通过反射获取指定名称的子程序(Sub),并调用它。
请注意,上述代码中的"SubName"需要替换为实际的子程序名称。此外,还可以根据需要传递参数给子程序,只需将参数作为Invoke方法的第二个参数传递即可。
这种方法可以方便地在VB.NET中获取所有打开的表单,并在每个表单下调用同名的子程序。这在需要对多个表单进行统一操作时非常有用,例如批量保存、批量关闭等操作。
推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云函数(SCF)。
领取专属 10元无门槛券
手把手带您无忧上云