none
Chamar um método de um form dinamico RRS feed

  • Pergunta

  •  

     

    Ola,

     

    gostaria de saber como faço para chamar um metodo de um form dinamicamente.

     

    A situação que desejo é assim

     

    object form = this.ActiveMdiChild;

    if ((form != null))

    {

    form.Novo();

    }

     

    Veja que o meu form também é dinâmico.

     

    Mas ocorre o seguinte erro

     

    Error 2 'object' does not contain a definition for 'Novo' and no extension method 'Novo' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?) D:\Projetos\Net 2008\HIDROSOL\SGI\Interface\mdiPrincipal.cs 183 22 SGI

     

    O que eu tenho que fazer para que ele entenda qual é o form dinamico e chamar o metodo novo que existe implementado nele?

     

    Obrigado,

    quinta-feira, 21 de agosto de 2008 18:42

Todas as Respostas

  • Edilson

     

    Não entendir bem o exemplo.

     

    O seu formulario estar sendo criado na mão ou voce estar criando uma nova instancia de um formulario já existente.

     

    exemplo.

     

    frmCadastro cadastro = new frmCadastro();

    cadastro.ShowDialog();

     

    if (cadastro == null)

    {

    cadastro = new frmCadastro(); //Nova instancia para o objeto

    cadastro.ShowDialog(); //Abrindo o formulario

    }

     

    Como falei não entendir bem o seu exemplo. Se nao for isso tenta ser um pouco mais especifico.

     

    Abraço.

    segunda-feira, 25 de agosto de 2008 18:18
  • Seria algo assim:


    Code Snippet

    form.GetType().GetMethod("NomeDoMetodo").Invoke(form, new object[] { });



    Dá uma olhada no fórum existem outras questões sobre reflection.


    segunda-feira, 25 de agosto de 2008 21:02