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 :

MDI et ShowDailog problème


Sujet :

Windows Forms

  1. #1
    Membre régulier Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Points : 114
    Points
    114
    Par défaut MDI et ShowDailog problème
    Bonjour,

    J'ai un form qui est un MDI Container (formprincipal) et j'ai tous mes autres form qui sont ses fils.

    Dans l'un de ces forms j'ouvre un autre form (formshowdialog) qui est un showdialog, il bloque donc tous les autres forms. Formshowdialog n'est pas un fils mdi de formprincipal car il est ouvert en showdialog.

    J'ouvre un autre form (formfils) avec un bouton du formShowDialog, mais celui-ci se met en arrière plan et on ne peut pas le sélectionner : normal.

    Je voudrais que lorsque formshowdialog est ouvert et qu'il ouvre formfils on puisse accéder aux 2 forms et que lorsqu'on ferme formshowdialog, formfils reste ouvert et que tous les autres form redeviennent accessibles.

    Voilà ! C'est pas gagné

    Merci d'avance

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    au lieu de faire un showdialog, tu peux faire un show et mettre toplevel et/ou topmost à true, la fenetre sera toujours au premier niveau, mais n'étant pas modale, le reste de l'appli sera utilisable
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre régulier Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Points : 114
    Points
    114
    Par défaut
    Oui c'est envisageable, mais ça poserait quelque petits soucis.

    Si je ne trouve rien d'autre je me débrouillerais avec ton idée.

    Merci

  4. #4
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 388
    Points : 2 999
    Points
    2 999
    Par défaut
    Est-ce que le paramètre "IWin32Windows Owner" du ShowDialog ne te permettrait pas de régler le problème ?

  5. #5
    Membre régulier Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Points : 114
    Points
    114
    Par défaut
    Je ne vois pas trop comment me servir de ça.

    MSDN : Cette version de la méthode ShowDialog vous permet de spécifier un formulaire ou un contrôle spécifique comme le propriétaire de la boîte de dialogue affichée. Si vous utilisez la version de cette méthode qui est dépourvue de paramètre, la boîte de dialogue affichée appartient automatiquement à la fenêtre active de l'application.

  6. #6
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 388
    Points : 2 999
    Points
    2 999
    Par défaut
    Citation Envoyé par Chacha35 Voir le message
    Je ne vois pas trop comment me servir de ça.
    Si j'ai compris le problème, tu as :

    • une feuille mère MDI
    • plusieurs feuilles filles


    Quand une de ces feuilles fille ouvrent une boite de dialogue, ça te bloque l'accès aux autres feuilles filles.

    C'est bien ça ?

    Alors je me demandais si en précisant comme Owner de ton ShowDialog la forme fille appelante plutôt que de laisser la paramètre par défaut ne résoudrait pas ton problème en ne bloquant QUE la feuille fille indiquée.

    Mais j'ai peut-être mal compris la question

  7. #7
    Membre régulier Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Points : 114
    Points
    114
    Par défaut
    A d'accord, j'avais pas très bien compris le truc.

    Donc c'est bien mon problème mais je voudrais bloquer plusieur form. Je ne pense pas qu'on puisse donner plusieurs mère a mon formShowDialog

    En faite je veux que tous les form qui sont ouverts lorsque j'ouvre formShowDialog deviennent bloqué et que j'ouvre un autre form (formfils) depuis formShowDialog et que formfils et formShowDialog soient non bloqués.

    Et en plus qu'après la fermeture de formShowDialog, formfils reste ouvert et dispo ( donc c'est pas vraiment un fils) et que les autres form redeviennent dispo.

    Ton idée pourrait le faire si on pouvait mettre tous les form de départ comme mère du formShowDialog.


  8. #8
    Membre régulier Avatar de beren.kei
    Inscrit en
    Mai 2008
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Mai 2008
    Messages : 135
    Points : 123
    Points
    123
    Par défaut
    bonjour,

    à tester si c'est faisable, mais que le form ouvert par le showdialog ne soit pas fils d'un autre form et donc non bloqué, c'est peut-être faisable non ? un form externe par rapport aux autres... après, à voir pour le garder ouvert, de changer son parent sur le closing du showdialog !
    c'est un peu embrouillé mais y'a une chance pour que ca marche ^^

    "- Mais à quoi ça sert IE ?
    - à télécharger Firefox ! "

  9. #9
    Membre régulier Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Points : 114
    Points
    114
    Par défaut
    Je viens de faire le test pour le ShowDialog avec un propriétaire: et bien il bloque quand même tous les autres form.

    Je pourrais mettre la propriété enabled des form à false pour les bloquer. Mais ça ne donne pas pareil visuellement.

    Je ne sais pas s'il existe un moyen de simuler le bloquage (clignotement lorsqu'on tente d'y entrer et non déplacable).

    Sinon beren.kei, je n'ai pas très bien saisie ton idée, par contre j'adore ta signature!

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Je ne suis pas sûr d'avoir tout compris dans le fonctionnement de votre IHM, et je pense que les utilisateurs aussi auront des difficultés.

    Pour guider l'utilisateur, je cacherais les fenêtres "inaccessibles" pendant l'affichage de la "showdialog" et les réafficherait après.
    Vous n'aurez plus de problème de "grisage des fenêtres" et rendra peut-être votre IHM plus simple à utiliser.

    On peut aussi faire "Enable=false" à la place de "Visible=false", si vous ne voulez pas trop surprendre vos utilisateurs avec des surgissements de fenêtres.

Discussions similaires

  1. [VB.NET]Problème pour les feuilles MDI
    Par Skieur38 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/02/2006, 14h10
  2. Problème MDI
    Par Vodkha dans le forum Langage
    Réponses: 9
    Dernier message: 04/11/2005, 16h31
  3. fenetre MDI - problème d'allocation
    Par say dans le forum C++Builder
    Réponses: 8
    Dernier message: 03/11/2005, 17h06
  4. Problème de clignotement de fond d'écran en mode MDI
    Par Tardiff Jean-François dans le forum Composants VCL
    Réponses: 3
    Dernier message: 17/12/2004, 16h19
  5. Réponses: 7
    Dernier message: 16/06/2004, 15h02

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