首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在VB.NET中获取所有打开的表单在每个表单下同名的调用子

在VB.NET中,可以使用以下方法获取所有打开的表单并在每个表单下调用同名的子程序:

  1. 首先,创建一个名为"FormManager"的类,用于管理所有打开的表单。在该类中,定义一个静态列表(List)用于存储打开的表单对象。
代码语言:vb
复制
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
  1. 在每个表单的Load事件中,调用FormManager的AddForm方法将当前表单添加到列表中。
代码语言:vb
复制
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
    FormManager.AddForm(Me)
End Sub
  1. 在每个表单的FormClosed事件中,调用FormManager的RemoveForm方法将当前表单从列表中移除。
代码语言:vb
复制
Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As FormClosedEventArgs) Handles MyBase.FormClosed
    FormManager.RemoveForm(Me)
End Sub
  1. 现在,可以通过访问FormManager类的OpenForms列表来获取所有打开的表单。在每个表单下调用同名的子程序,可以使用反射(Reflection)来实现。
代码语言:vb
复制
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)。

  • 腾讯云云服务器(CVM):提供可扩展的计算能力,可用于部署和运行各种应用程序。了解更多信息,请访问:腾讯云云服务器
  • 腾讯云函数(SCF):无服务器计算服务,可以让您在云端运行代码而无需管理服务器。了解更多信息,请访问:腾讯云函数
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券