Pagina inicial » como » Passar variáveis ​​entre Windows Forms Windows sem ShowDialog ()

    Passar variáveis ​​entre Windows Forms Windows sem ShowDialog ()

    Quando você estiver programando um aplicativo do Windows Forms, invariavelmente precisará obter variáveis ​​de uma segunda janela de formulário, como um formulário de opções ou um prompt de pesquisa de pop-up..

    A maioria dos guias por aí dirá que é necessário abrir o segundo formulário com ShowDialog (), que impede o usuário de fazer qualquer outra coisa até fechar a segunda janela de formulário. Isso não funcionará muito bem para um diálogo localizar / substituir, por exemplo. Também não funciona muito bem para formulários pop-up personalizados.

    A maneira rápida de passar variáveis ​​entre os formulários é usando Delegados. Você pode definir um manipulador de eventos para o evento Closing do segundo formulário e manipular o evento no primeiro formulário. Isso permite capturar variáveis ​​antes que a segunda janela de formulário seja fechada.

    Para este exercício, vamos assumir que temos duas formas:

    MainForm

    OptionsForm

    Vamos supor ainda que clicamos em algum tipo de botão que abre o OptionsForm com uma chamada de método Show (). Agora vamos dar uma olhada na mágica:

    … recorte… .

    OptionsForm theform = novo OptionsForm ();
    theform.Closing + = new CancelEventHandler (theform_Closing);
    theform.Show ();

    private void theform_Closing (remetente do objeto, CancelEventArgs e)

    OptionsForm theform = (OptionsForm) remetente;

    // Pega a variável do formulário de opções. O formulário de opções deve definir essa variável antes de fechar, e a variável deve ser marcada como public.
    string localvar = theform.thestringvariable;

    Isso é tudo que existe para isso.