Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment utiliser Application.OpenForms

2 réponses
Avatar
raleur
Bonjour à tous

Je dois permettre d'ouvrir une fenêtre d'options dans mon application, mais je viens de remarqer que
l'utilisateur peut ouvrir plus d'une fois cette même fenêtre. Et après une recherche sur le net, je
vois qu'il faut utiliser Application.OpenForms pour detecter si ma fenètre d'options est déjà
ouverte. Mais je ne vois pas trop comment l'utiliser.

merci par avance

2 réponses

Avatar
raleur
raleur a écrit :
Bonjour à tous

Je dois permettre d'ouvrir une fenêtre d'options dans mon application,
mais je viens de remarqer que l'utilisateur peut ouvrir plus d'une fois
cette même fenêtre. Et après une recherche sur le net, je vois qu'il
faut utiliser Application.OpenForms pour detecter si ma fenètre
d'options est déjà ouverte. Mais je ne vois pas trop comment l'utiliser.

merci par avance


Je pose ma question autrement alors, comment je fais pour savoir q'une form est déjà ouverte

merci
Avatar
Gilles TOURREAU [MVP]
"raleur" a écrit dans le message de
news:47a43db7$0$883$
raleur a écrit :
Bonjour à tous

Je dois permettre d'ouvrir une fenêtre d'options dans mon application,
mais je viens de remarqer que l'utilisateur peut ouvrir plus d'une fois
cette même fenêtre. Et après une recherche sur le net, je vois qu'il faut
utiliser Application.OpenForms pour detecter si ma fenètre d'options est
déjà ouverte. Mais je ne vois pas trop comment l'utiliser.

merci par avance


Je pose ma question autrement alors, comment je fais pour savoir q'une
form est déjà ouverte

merci




Il existe plusieurs possibilités :

La plus simple :
Si votre fenêtre options doit être unique (pas de possibilité de
l'instancier plusieurs fois), il faut tout simplement garder une instance
sur celle-ci dans une variable membre quelque part dans votre code...

if (this.maFormOptions != null)
{
this.maFormOptions.Activate();
}
else
{
this.maFormOptions = new OptionsForm();
this.maFormOptions.Show();
}

Ne pas oublier de mettre this.maFormOptions = null, à la fermeture de votre
form.

La solution avec OpenForms :

foreach(Form f in Application.OpenForms)
{
if (f.GetType() == typeof(OptionsForm))
{
//Alors au moins une instance d'OptionsForm est déjà ouverte !
}
}

Cordialement

--
Gilles TOURREAU - MVP C#


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr