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

C# Discussion :

OpenFileDialog et DialogResult. [Débutant]


Sujet :

C#

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

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

    Informations forums :
    Inscription : Septembre 2013
    Messages : 62
    Par défaut OpenFileDialog et DialogResult.
    Bonjour,

    Toujours dans mon apprentissage du C#, je commence ma première interface graphique en utilisant le Xaml à la place des Forms.
    Donc VS me génère un using System.Windows.

    J'ai un bouton permettant d'ouvrir un FileDialog pour choisir le fichier avec lequel travailler.

    J'utilise le code suivant comme indiqué dans l'aide que j'ai trouvé.

    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
     
            private void btnFichierExcel_Click(object sender, RoutedEventArgs e)
            {
                string Xlsfilename;
                OpenFileDialog FileDialog = new OpenFileDialog();
                FileDialog.InitialDirectory = @"C:\";
                FileDialog.Filter = "Excel file 2007(.xlsx) |*.xlsx| Excel file 2003(*.xls) |*.xls| All files (*.*) |*.*";
                FileDialog.FilterIndex = 2;
                FileDialog.RestoreDirectory = true;
     
                if (FileDialog.ShowDialog() == DialogResult.OK)
                {
                    if (FileDialog.FileName != null)
                            Xlsfilename = FileDialog.FileName;
                    else
                        MessageBox.Show("Veuillez choisir un fichier Excel...");
                }
            }
    Apparement pour pouvoir utiliser DialogResult.OK je dois faire un using de System.Windows.Forms mais qui rentre en conflit avec System.Windows qui est utilisé par Xaml (je suppose...).

    Je me retrouve donc avec une multitude de conflit entre System.Windows et System.Windows.Forms.

    Pouvez-vous me dire comment contourner celà ?
    Quelle est l'équivalent de DialogResult sans System.Windows.Forms ?

    Merci d'avance pour votre réponse.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

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

    Informations forums :
    Inscription : Septembre 2013
    Messages : 62
    Par défaut
    J'ai fait un test.

    Au lieu de créer une application WPF, j'ai créé une application Windows Forms et là bien sure, je n'ai aucun soucis avec mon code.

    Vu qu’apparemment les applications WPF sont l'avenir, autant que je sache directement travailler avec ce type là.

    Je me pose également la question qu'en à la gestion des retour de fonction comme les messagebox....

  3. #3
    Membre Expert Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Par défaut
    Bonjour,

    En WPF, la classe System.Windows.Controls.OpenFileDialog renvoie un Nullable<bool> et non un DialogResult.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var result = FileDialog.ShowDialog();
    //if (result.HasValue && result.Value) // soit comme ça
    if (result.GetValueOrDefault()) // ou comme ça
    {
    // Code
    }
    Bon dév

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Par défaut
    Salut,
    tu peux simplement préfixer ton dialogresult avec ton namespace :
    à la place de taper "Dialoresult.OK" tu tapes "System.Windows.Forms.DialogResult.OK" et là ya plus de conflit

  5. #5
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Salut,
    tu peux simplement préfixer ton dialogresult avec ton namespace :
    à la place de taper "Dialoresult.OK" tu tapes "System.Windows.Forms.DialogResult.OK" et là ya plus de conflit
    Tout à fait c'est un "soucis" qui revient assez souvent
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  6. #6
    Membre Expert Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Par défaut
    Citation Envoyé par Themacleod1980 Voir le message
    Salut,
    tu peux simplement préfixer ton dialogresult avec ton namespace :
    à la place de taper "Dialoresult.OK" tu tapes "System.Windows.Forms.DialogResult.OK" et là ya plus de conflit
    Il fait du WPF (puisqu'il parle de xaml), je ne vois donc pas l'intérêt d'ajouter des références à du Winforms dans ce cas là... Le plus propre serait tout de même d'utiliser System.Windows.Controls.OpenFileDialog qui renvoie un Nullable<bool>.

    A bon entendeur...

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

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

    Informations forums :
    Inscription : Septembre 2013
    Messages : 62
    Par défaut
    Citation Envoyé par sisqo60 Voir le message
    Il fait du WPF (puisqu'il parle de xaml), je ne vois donc pas l'intérêt d'ajouter des références à du Winforms dans ce cas là... Le plus propre serait tout de même d'utiliser System.Windows.Controls.OpenFileDialog qui renvoie un Nullable<bool>.

    A bon entendeur...
    Comme le dit sisqo60, je trouvais ca plutôt moche (bien que ca solutionne mon problème) d'utiliser windows.forms.

    C'est la raison pour laquelle j'ai utilise le nullable<bool>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
                Nullable<bool> result = FileDialog.ShowDialog();
     
                if (result == true )
                {
                    if (FileDialog.FileName != null)
                            tbFichierExcel.Text  = FileDialog.FileName;
                    else
                        MessageBox.Show("Veuillez choisir un fichier Excel...");
                }
                else
                    MessageBox.Show("Veuillez choisir un fichier Excel...");

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

Discussions similaires

  1. [VB.NET]] pb avec OpenFileDialog et BD
    Par romram dans le forum Windows Forms
    Réponses: 4
    Dernier message: 04/07/2005, 17h58
  2. [VB.NET] Problème avec OpenFileDialog
    Par Lahouari dans le forum Windows Forms
    Réponses: 5
    Dernier message: 03/03/2005, 15h41
  3. [C#] OpenFileDialog en Remoting
    Par MarkoImDe dans le forum Windows Forms
    Réponses: 6
    Dernier message: 03/06/2004, 17h44
  4. [VB.NET] OpenFileDialog renvoyer un repertoire ?
    Par hirochirak dans le forum Windows Forms
    Réponses: 7
    Dernier message: 25/05/2004, 10h55
  5. [VC++7.NET] DialogResult
    Par ben_popcorn dans le forum MFC
    Réponses: 2
    Dernier message: 29/03/2004, 17h06

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