Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, boa tarde.
Estou tentando abrir um formulário através do nome dele (por exemplo, abrir o formulário "frmCliente", passando somente a string), e até que consegui, através do seguinte método:
Private Function GetFormByName(ByVal formName As String) As Object
Dim myasm As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()
Try
Return myasm.CreateInstance(myasm.GetName.Name.Replace(" ", "_") & "." & formName, True)
Catch ex As Exception
Return Nothing
End Try
End Function
Private Sub AbreForm()
Dim Formulario As Form = GetFormByName("frmCliente")
If Formulario IsNot Nothing Then
Formulario.MdiParent = Me
Formulario.Show()
End If
End Sub
Porém, através da função GetFormByName() é gerado apenas uma cópia do objeto, ou seja, "Formulario <> frmCliente", então se eu utilizar em qualquer parte do meu projeto frmCliente.Show(), por exemplo, ele abriria outro formulário. O que eu queria era esse conceito:
Private Sub AbreForm()
Dim Formulario As Form = frmCliente
If Formulario IsNot Nothing Then
Formulario.MdiParent = Me
Formulario.Show()
End If
End Sub
Porém, no código acima eu passei o objeto diretamente.
Seria possivel isso, procurar e retornar o frmCliente através da string "frmCliente"?
Não sei se fui claro, mas se precisar eu tento explicar novamente.
Obrigado desde já, abraços.
Carregando comentários...