none
Como transformar variavel em um "objeto" do tipo Form? RRS feed

  • Pergunta

  • Então gente! Agradeço desde já por estar lendo minha pergunta!

    Situação: De um formulário "FormLancamento" preciso chamar outro formulário de "Busca de Cliente" (Até ai tudo bem!) porém depois de estar nesse formulário "FormBuscaCliente" preciso que ele envie dados para uma label (código do cliente) para o formulário que o chamou. aí que entra a variável pois vou usar esse formulário de busca a partir de vários outros no meu projeto.

    então... estou tentando assim mas me dá um erro...

    A variável:

    Public Class FormBuscaCliente
        Public FormQueChamou As Object
    
    ...

    Chamando o Formulário de busca:

    FormBuscaCliente.FormQueChamou = Me
    FormBuscaCliente.ShowDialog()
    

    Devolvendo os dados para o Formulário

    'No evento DoubleClick da minha DataGrid...
    
    FormQueChamou.lbl_clientecod.Text = grd_clientes.Item(0, i).Value

    e então...

    Isso está atrasando minha vida!

    Por favor, me ajudem :)

    segunda-feira, 5 de outubro de 2015 12:24

Respostas

  • Neste caso, sugiro que no form que será chamado, você crie um método que faz o ShowDialog e retorna o valor desejado. Assim, de qualquer outro form você o chamaria, por exemplo, da seguinte forma:

    var valor = formSecundario.MeuMetodo

    E no form secundário, esse método teria algo mais ou menos assim:

    Public Function MeuMetodo As String
        Me.ShowDialog
        MeuMetodo = grd_clientes.Item(0, i).Value
    End Function

    Ainda no form secundário você precisa ter um botão para fechar, ou no duplo clique do grid, alterar o DialogResult para Ok:

    Me.DialogResult = DialogResult.Ok


    Joel Rodrigues MSP, MCP, MTA. Editor geral .NET Magazine e Easy .NET Magazine

    • Marcado como Resposta Marcos SJ segunda-feira, 5 de outubro de 2015 13:40
    segunda-feira, 5 de outubro de 2015 12:39

Todas as Respostas

  • Neste caso, sugiro que no form que será chamado, você crie um método que faz o ShowDialog e retorna o valor desejado. Assim, de qualquer outro form você o chamaria, por exemplo, da seguinte forma:

    var valor = formSecundario.MeuMetodo

    E no form secundário, esse método teria algo mais ou menos assim:

    Public Function MeuMetodo As String
        Me.ShowDialog
        MeuMetodo = grd_clientes.Item(0, i).Value
    End Function

    Ainda no form secundário você precisa ter um botão para fechar, ou no duplo clique do grid, alterar o DialogResult para Ok:

    Me.DialogResult = DialogResult.Ok


    Joel Rodrigues MSP, MCP, MTA. Editor geral .NET Magazine e Easy .NET Magazine

    • Marcado como Resposta Marcos SJ segunda-feira, 5 de outubro de 2015 13:40
    segunda-feira, 5 de outubro de 2015 12:39
  • Hum, acho que entendi Joel, primeiramente muito obrigado por responder ao tópico!

    Mas usando essa função como vou trazer o "Código do cliente" que é selecionado da minha DataGrid para o label do meu Form Primário?

    Desculpa minha ignorância, mas não entendi.
    segunda-feira, 5 de outubro de 2015 14:31