IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

fenêtre fille qui reste au premier plan


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 92
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Points : 31
    Points
    31
    Par défaut fenêtre fille qui reste au premier plan
    Bonjour.

    J'ai un problème un peu différent de celui soulevé il y a peu de temps.
    J'ai une application avec une fenêtre Form1 qui crée une fenêtre fille FavForm, non MDI. Cette fenêtre est affichée en permanence (e.Cancel = true).
    Je constate que la fenêtre FavForm s'affiche au premier plan, au dessus de la fenêtre Form1, même quand la fenêtre Form1 a le focus.
    Je voudrais que ce soit la la fenêtre qui a le focus qui soit sur le dessus, soit Form1 soit FavForm. Je ne souhaite pas utiliser TopMost.

    Merci.

  2. #2
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    Ta fenêtre fille n'aurait pas TopMost à true ?
    Sinon, quand tu cliques sur la fenêtre mère, elle arrive à avoir le focus ? C'est juste que ta fenêtre fille perd bien le focus mais reste au premier plan ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 92
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par Cardi
    Ta fenêtre fille n'aurait pas TopMost à true ?
    Non, je viens de vérifier, elle a TopMost à false.
    Sinon, quand tu cliques sur la fenêtre mère, elle arrive à avoir le focus ? C'est juste que ta fenêtre fille perd bien le focus mais reste au premier plan ?
    Exactement, la fenêtre fille perd le focus mais reste devant.

  4. #4
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    Tu écris ceci pour afficher ta fenêtre fille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Form2 myForm = new Form2();
    myForm.Show(this);
    ?

    Si c'est le cas, enlève le this

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Form2 myForm = new Form2();
    myForm.Show();

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 92
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    C'est ce que je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     Dans Form1
      FavForm favform;
       ...
      favform = new FavForm();
      favform.Owner = this;
      favform.Show();
     
    Dans FavForm
      Form1 maForm1 = (Form1)this.Owner;
    comme suggéré dans la FAQ. A noter que je suis en train de transposer un programme écrit en C++. C'était autrement plus simple: les 2 forms sont créées dans le WinMain ensuite TForm1 *Form1; TFavForm *FavForm; dans les 2 forms et le tour est joué. Je ne sais pas comment transposer celà. Je débute en C# (je ne suis plus tout jeune (75 ans dans 3 mois) et j'ai un peu de mal à assimiler les nouveaux concepts.

  6. #6
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    Est-ce que l'utilisation de maForm1 dans la fenêtre fille est utile ? Si ce n'est pas le cas, il suffit d'après mes tests), de retirer :


  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 92
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par Cardi
    Est-ce que l'utilisation de maForm1 dans la fenêtre fille est utile ?
    Oui, oui, c'est utile. J'ai une ListView complète dans Form1 (liste chaines TV). Je crée des extraits de cette ListView dans FavForm (chaines favorites). En final, je récupère dans Form1 des informations qui viennent de FavForm. Donc j'ai besoin de communications entre les 2 forms dans les 2 sens.

  8. #8
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    Erf, c'est gênant.
    Alors une solution qui pourrait fonctionner : au lieu de passer la fenêtre mère via la propriété Owner, il suffirait de modifier le constructeur de la fenêtre fille pour qu'il puisse recevoir un objet de type Form (qui ne sera rien d'autre que la référence vers la fenêtre mère).

    J'espère que je ne me suis pas trop mal expliqué

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 92
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par Cardi
    ...Alors une solution qui pourrait fonctionner : au lieu de passer la fenêtre mère via la propriété Owner, il suffirait de modifier le constructeur de la fenêtre fille pour qu'il puisse recevoir un objet de type Form (qui ne sera rien d'autre que la référence vers la fenêtre mère).

    J'espère que je ne me suis pas trop mal expliqué
    Tu t'es magnifiquement expliqué Et ca marche
    Dans Form1 j'ai codé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       FavForm favform;
     
    ...favform = new FavForm(this);
    Dans FavForm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       public Form1 maForm1;
       public FavForm(Form1 myForm1)
       {
           InitializeComponent();
           maForm1 = myForm1;
       }
    et j'utilise maForm1... etc. Et c'est la fenêtre qui a le focus qui est sur le dessus.
    Il y a peut-être une forme d'écriture plus élégante qui permets d'utiliser directement la référence de la fenêtre (myForm1 dans mon exemple) sans passer par un autre variable.
    Merci pour ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/03/2010, 09h48
  2. vidéo FLV qui reste au premier plan
    Par deschemps dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 05/12/2008, 14h14
  3. Une fenêtre qui reste en arrière plan ?
    Par supergrey dans le forum Windows
    Réponses: 7
    Dernier message: 27/06/2008, 16h40
  4. Faire une fenêtre qui reste au premier plan
    Par Mandelbrot dans le forum Windows
    Réponses: 6
    Dernier message: 13/03/2006, 19h34
  5. [C#][JS] Page qui reste en arrière plan
    Par Jap dans le forum ASP.NET
    Réponses: 2
    Dernier message: 13/02/2006, 09h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo