faael 0 Denunciar post Postado Outubro 6, 2010 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. Compartilhar este post Link para o post Compartilhar em outros sites
Daniel LM Costa 2 Denunciar post Postado Outubro 6, 2010 Procura CallByName e vê se ajuda... Se eu pensar em outra coisa eu posto aqui... Compartilhar este post Link para o post Compartilhar em outros sites
faael 0 Denunciar post Postado Outubro 7, 2010 Perfeito, Daniel. Utilizei da seguinte maneira: Private Sub AbreForm() Dim Formulario As Form = CallByName(MeuProjeto.My.Forms, "frmCliente", CallType.Get) If Formulario IsNot Nothing Then Formulario.MdiParent = Me Formulario.Show() End If End Sub Assim ele me retornou o objeto original do formulário. Muito obrigado, abraço. Compartilhar este post Link para o post Compartilhar em outros sites