Premier plan

Résolu
JMsme Messages postés 12 Date d'inscription vendredi 16 juin 2006 Statut Membre Dernière intervention 28 novembre 2008 - 11 juil. 2006 à 10:04
JMsme Messages postés 12 Date d'inscription vendredi 16 juin 2006 Statut Membre Dernière intervention 28 novembre 2008 - 12 juil. 2006 à 09:23
Bonjour,

J'ai realise une ihm constituée de trois forms. Je souhaite que lorsque
la principale est activée, les deux autres soient visibles. J'ai essayé
en mettant leur attribut TopMost a true, mais elles sont alors toujours
au premier plan, meme lorsqu'une autre fenetre est activée. Comment
pourrais-je eviter cela?

Merci

11 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
11 juil. 2006 à 15:11
mouarf... quelle nouille je suis...

quand tu ouvres ta fenêtre fille, utilise la méthode Show(parent).

ex :

Form2 f = new Form2();
f.Show(this); // this étant le formulaire courant

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
11 juil. 2006 à 10:09
Salut,
Euh, je vois pas trop pourquoi elles ne serait pas visibles !??
Tu ouvres tes fenêtres en faisant un Show ?

<hr size= "2" /> VC# forever
=13319
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
11 juil. 2006 à 10:18
tu peux appeler leur méthode BringToFront()...

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
0
JMsme Messages postés 12 Date d'inscription vendredi 16 juin 2006 Statut Membre Dernière intervention 28 novembre 2008
11 juil. 2006 à 10:21
Elles ne sont pas visibles lorsque la fenetre principale (qui couvre tout l'ecran) est activée, et passe alors au premier plan.

Merci sebmafate, mais quand dois je appeler cette methode? Lorsque la
fenetre principale est activée (evenement OnActivated je crois)?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
11 juil. 2006 à 10:24
Si je comprends bien tu veux que tes 2 fenetres inactives soient au 1er plan. Bah, à part TopMost, je vois pas.
Si tu a créé tes 2 fenetres avec la principale, il te suffit de les mettre TopMost true quand la principale prend le focus, et de mettre TopMost false quand elle perd le focus.
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
11 juil. 2006 à 10:31
je suis du même avis que fregolo... le mieux, dans ton cas est d'utiliser la propriété TopMost de tes fenêtres "filles".

Les évènements Activated et LostFocus de ton formulaire principal te permettrons d'en modifier la valeur.

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
0
JMsme Messages postés 12 Date d'inscription vendredi 16 juin 2006 Statut Membre Dernière intervention 28 novembre 2008
11 juil. 2006 à 13:49
J'ai essayé, mais lorsque je fais TopMost = true, la fenetre secondaire
prend le focus puis le rend a la fenetre principale, ce qui provoque un
nouveau TopMost = true, etc. J'ai alors une boucle infinie et je suis
bloqué sur la fenetre secondaire. Ca ne marche donc pas. Ou alors, je
me suis mal débrouillé.
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
11 juil. 2006 à 13:51
dans le Activated, si le TopMost = true... et bah, tu ne le mets pas de nouveau... ;)

genre :

if (!form2.TopMost) {
    form2.TopMost = true;
}

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
0
JMsme Messages postés 12 Date d'inscription vendredi 16 juin 2006 Statut Membre Dernière intervention 28 novembre 2008
11 juil. 2006 à 14:37
J'ai essayé egalement, mais ça n'a rien changé. Et je sais pas pourquoi. Mais je ne desespere pas...
0
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
11 juil. 2006 à 14:48
J'ai testé, ca marche, mais tout dépend où se trouve le formSecondaire.Show()
0
JMsme Messages postés 12 Date d'inscription vendredi 16 juin 2006 Statut Membre Dernière intervention 28 novembre 2008
12 juil. 2006 à 09:23
Ok, merci.

J'ai contourné le probleme en integrant les fenetres filles a l'ihm en tant que panel, mais je me souviendrai de vos conseils.
0
Rejoignez-nous