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

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

Vídeo: Passar variáveis entre Windows Forms Windows sem ShowDialog ()

Vídeo: Passar variáveis entre Windows Forms Windows sem ShowDialog ()
Vídeo: Como colocar papeis de paredes animados no Windows #computador #dicas #pc #windows - YouTube 2024, Maio
Anonim

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 informam que você precisa abrir o segundo formulário com ShowDialog (), que impede o usuário de fazer qualquer outra coisa até fechar a segunda janela do formulário. Isso não funcionará muito bem para uma caixa de diálogo de localização / substituição, por exemplo. Também não funcionará 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 supor que temos dois formulários:

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:

……. snip…….

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

}

private void theform_Closing(object sender, CancelEventArgs e) {

OptionsForm theform = (OptionsForm)sender;

// Grab the variable from the options form. The options form should set this variable before it closes, and the variable should be marked as public. string localvar = theform.thestringvariable;

}

Isso é tudo que existe para isso.

Recomendado: