Passer des variables entre Windows Forms Windows sans ShowDialog ()

Lorsque vous programmez une application Windows Forms, vous aurez toujours besoin d'obtenir des variables à partir d'une fenêtre deuxième forme, comme une forme d'options ou de prompte de recherche contextuelle.

La plupart des guides là-bas vous diront que vous avez pour ouvrir la seconde forme avec ShowDialog (), qui bloque l'utilisateur de faire autre chose jusqu'à ce qu'ils aient fermé la fenêtre deuxième formulaire. Cela ne fonctionnera pas très bien pour un dialogue Rechercher / Remplacer, par exemple. Elle permettra aussi de ne pas fonctionner très bien pour des formulaires personnalisés tirés popup.

Le moyen rapide de passer des variables entre les formes est d'utiliser des délégués. Vous pouvez définir un EventHandler pour l'événement de clôture de la seconde forme, et gérer l'événement dans la première forme. Cela vous permet de capturer les variables avant de la fenêtre deuxième forme a fermé.

Pour cet exercice, nous allons supposer que nous avons deux formes:

MainForm

OptionsForm

Nous allons encore supposer que nous avons cliqué sur une sorte de bouton qui ouvre la OptionsForm avec un Show () appel de méthode. Maintenant, nous allons jeter un oeil à la magie:

....... snip .......

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

}

private void theform_Closing (object sender, CancelEventArgs e)
{

OptionsForm LaFeuille = (OptionsForm) l'expéditeur;

/ / La variable Grab de la forme d'options. Le formulaire options devraient définir cette variable avant qu'elle ne ferme, et la variable doit être marqué comme public.
chaîne de localvar = theform.thestringvariable;

}

C'est tout ce qu'il ya à faire.

Commentaires

Posts les plus consultés de ce blog

Créer Arrêter / Redémarrer / Verrouiller les icônes dans Windows 7 ou Vista

Qu'est ce qu'un lien Magnet Et quelle est la différence des torrents?

Gardez vos mots de passe sous Linux, avec KeePassX