我需要能够创建一个按钮,当我单击该按钮时,该按钮可以链接到不同的 Windows 窗体。但是,此按钮是动态生成的,有时可以根据需要链接到不同的表单。例如:
我的按钮可以链接到 FormA.vb 或 FormB.vb。我可以让按钮根据需要创建字符串“FormA”或“FormB”,但我不知道如何在屏幕上调用 FormA.vb 或 FormB.vb。
到目前为止,我一直在使用以下方法更改 Windows 窗体:
FormA.MdiParent = MainForm //My main form window
FormA.Show()
Me.Close()
但这显然不适用于:
"FormA".MdiParent = MainForm
"FormA".Show()
仅仅因为它们是字符串而不是类。
有没有办法让我的按钮链接正确?
提前致谢。
最佳答案
试试这个,你必须导入System.Windows.Forms
和System.Reflection
首先将表单名称放入strCreatedFromButton
中,然后找到它。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim strCreatedFromButton As String = "Form3"
Dim frm As New Form
frm = DirectCast(CreateObjectInstance(strCreatedFromButton), Form)
frm.Show()
End Sub
Public Function CreateObjectInstance(ByVal objectName As String) As Object
Dim obj As Object
Try
If objectName.LastIndexOf(".") = -1 Then
objectName = [Assembly].GetEntryAssembly.GetName.Name & "." & objectName
End If
obj = [Assembly].GetEntryAssembly.CreateInstance(objectName)
Catch ex As Exception
obj = Nothing
End Try
Return obj
End Function
关于vb.net - 使用其名称作为字符串来调用单独的 Windows 窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26478165/