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 :

[c# et .net] Affichage de SaveFileDialog en arrière plan avec ShowDialog


Sujet :

Windows Forms

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 5
    Points : 1
    Points
    1
    Par défaut [c# et .net] Affichage de SaveFileDialog en arrière plan avec ShowDialog
    Bonjour à tous les forumeurs,

    Je lutte avec C# et la librairie system.Windows.Forms depuis quelques heures maintenant et je fais donc appel à vos connaissances avant de jeter le PC par la fenêtre. :-)

    J'ai réalisé un petit programme qui ouvre un fichier à l'aide de OpenFileDialog, puis demande à l'utilisateur via un SaveDialogFile dans quel fichier enregistrer les modifications qui seront faites sur le premier fichier ouvert. Vous me suivez?

    Tout ceci dans une classe public où j'ai créé une méthode de classe Main (pas d'instanciation d'objets donc).

    J'ouvre le premier dialog (OpenFileDialog) avec la méthode ShowDialog(). Tout se passe bien, la Dialog s'ouvre en premier plan.

    Le second appel à ShowDialog sur l'autre object (SaveFileDialog) fait apparaître cette dialog en arrière plan systématiquement. Du coup, cette fenêtre est cachée derrière toutes les autres fenêtres ouvertes sur le bureau.

    Je suis incapable de trouver des cas similaires sur le net. Et je crois que je vais devenir zinzin avec cette histoire.
    Je n'ai trouvé aucune propriété ou méthode pour SaveFileDialog qui permette de forcer son affichage en premier plan.
    Pour info, j'ai aussi tenté d'ouvrir deux OpenFileDialog à la suite. Même verdict. La première fenêtre s'ouvre en premier plan, la seconde en arrière plan.

    Le code en résumé pour vous éclairer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     
    using System.Windows.Forms;
    ...
    public class ModifiyDumpFile
    {
    	public static void Main(string[] args)
    	{
    		OpenFileDialog dlg_input_file = new OpenFileDialog();
    		dlg_input_file.Filter = "Dump file to modify (*.*)|*.*";
    		dlg_input_file.Title = "Select the dumpfile you want to change";
     
    		if (dlg_input_file.ShowDialog() == DialogResult.OK)
    		{
    			SaveFileDialog dlg_output_file = new SaveFileDialog();
    			dlg_output_file.Filter = "Dump file to save (*.dump)|*.dump";
    			dlg_output_file.Title = "Create the modified dump file";
    			dlg_output_file.FilterIndex = 1;
    			dlg_output_file.RestoreDirectory = true;
    			dlg_output_file.OverwritePrompt = true;
     
                            // C'est ci-dessous que le problème survient. La fenêtre est en arrière plan.
    			if(dlg_output_file.ShowDialog() == DialogResult.OK)
    			{
                            ...
    Merci d'avance pour votre aide,
    Mathieu

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Bizarre...
    Je me demande si ce n'est pas lié au fait que ton appli n'a pas de fenêtre principale

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Bizarre...
    Je me demande si ce n'est pas lié au fait que ton appli n'a pas de fenêtre principale
    Oui, c'est aussi ce que je me suis demandé. Mais bon, ça paraît dingue qu'il n'y ait pas un moyen de la faire passer en premier plan, non?

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    salut

    est-ce une appli Console ?

    The Monz, Toulouse

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Bizarre...
    Je me demande si ce n'est pas lié au fait que ton appli n'a pas de fenêtre principale
    Oui, c'est aussi ce que je me suis demandé. Mais bon, ça paraît dingue qu'il n'y ait pas un moyen de la faire passer en premier plan, non?

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    salut

    est-ce une appli Console ?

    The Monz, Toulouse
    Hello,

    Tu veux dire : lancée depuis un "command prompt"? La réponse est oui.
    Je peux lancer l'appli depuis un command prompt ou directement depuis une fenêtre d'exploration Windows (mais il ouvre un command prompt le temps de l'exécution).

    J'suis sur Toulouse aussi (le monde est petit :-) ),
    Mathieu

  7. #7
    Membre régulier Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Points : 121
    Points
    121
    Par défaut
    1- Ton exemple n'a marché pour moi qu'apres avoir ajouté l'attribut [STAThread] a la fonction main.

    2- J'ai les 2 boites de dialogue qui s'affichent derriere la fenetre de la console principale seulement, et pas derriere toutes les fenetre ouvertes

    Pourquoi tu travailles avec un projet en cosole ? je suis sur que ton probleme ne sera plus present dans une appli windows forms

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par subzero01 Voir le message
    1- Ton exemple n'a marché pour moi qu'apres avoir ajouté l'attribut [STAThread] a la fonction main.

    2- J'ai les 2 boites de dialogue qui s'affichent derriere la fenetre de la console principale seulement, et pas derriere toutes les fenetre ouvertes
    J'ai essayé et même punition, fenêtre en arrière plan de toutes les autres.


    Citation Envoyé par subzero01 Voir le message
    Pourquoi tu travailles avec un projet en cosole ? je suis sur que ton probleme ne sera plus present dans une appli windows forms
    Je bosse avec un projet console pour des raisons de simplicité (j'ai fait au plus vite) et parce que je débute en C#. Je vais regarder cette histoire d'appli windows form.

    Merci pour votre aide à tous. Je mettrai le sujet en "Résolu" quand j'aurai trouvé une solution viable.
    Mathieu

  9. #9
    Membre régulier Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Points : 121
    Points
    121
    Par défaut
    A mon avi si tu fais le prj en Windows Forms tu gagneras plus de temps qu'une appli console !

    Déjà l'application console ne s'execute qu'en environnement windows (impossible sous DOS), alos pourquoi s'embeter à entrer la commande qui l'execute a la main alors qu'on est autorisé a la démarrer en un double click !

    toutes les references que tu entres à la main (System.Windows.Forms ...) sont déjà à ta disposition sans avoir y faire reference.

    Je pense que les appli consoles ne sont faites que pour les testes et les projets didacticiels, sinon donnez moi une autre bonne raison de ce type d'applications.

    Codialement, subzero.

  10. #10
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 222
    Points : 434
    Points
    434
    Par défaut
    Citation Envoyé par subzero01 Voir le message
    Je pense que les appli consoles ne sont faites que pour les testes et les projets didacticiels, sinon donnez moi une autre bonne raison de ce type d'applications.

    Codialement, subzero.
    ptete pour faire un batch ?

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 88
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par subzero01 Voir le message
    A mon avi si tu fais le prj en Windows Forms tu gagneras plus de temps qu'une appli console !

    Déjà l'application console ne s'execute qu'en environnement windows (impossible sous DOS), alos pourquoi s'embeter à entrer la commande qui l'execute a la main alors qu'on est autorisé a la démarrer en un double click !

    toutes les references que tu entres à la main (System.Windows.Forms ...) sont déjà à ta disposition sans avoir y faire reference.

    Je pense que les appli consoles ne sont faites que pour les testes et les projets didacticiels, sinon donnez moi une autre bonne raison de ce type d'applications.

    Codialement, subzero.
    Effectivement, beaucoup de gens font des batchs avec plein de petits "scripts" écrits en C#. C'est très très très très utile !

    Après, si tu veux faire des batchs avec des applis winforms c'est ton droit, ou ta malédiction, au choix

    Maintenant OWickerman, c'est clair que c'est beaucoup plus simple de commencer avec une appli winform qu'avec de la console ...

    Bonne journée

Discussions similaires

  1. probleme de mettre une image en arriére-plan avec le JFrame
    Par fateh_mansori dans le forum NetBeans
    Réponses: 4
    Dernier message: 21/03/2010, 20h12
  2. Problème fenêtre arrière-plan avec fvwm
    Par okuri dans le forum Linux
    Réponses: 0
    Dernier message: 26/03/2009, 15h13
  3. Réponses: 1
    Dernier message: 15/06/2008, 12h32
  4. Réponses: 1
    Dernier message: 28/05/2008, 16h04
  5. Afficher un fond en arrière plan avec des boutons
    Par eGen dans le forum Agents de placement/Fenêtres
    Réponses: 15
    Dernier message: 03/04/2005, 23h37

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