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 Presentation Foundation Discussion :

Probleme avec un OpenFileDialog avec richtextbox (Win32)


Sujet :

Windows Presentation Foundation

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 91
    Points : 65
    Points
    65
    Par défaut Probleme avec un OpenFileDialog avec richtextbox (Win32)
    Bonjour a tous,
    en faite je commence a manipuler les richtextbox et j'ai un petit souci dans mon code:
    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
    26
    27
    28
    private void Sous_menu_Ouvrir_Click(object sender, RoutedEventArgs e)
            {
                OpenFileDialog Fenetre_ouvrir = new OpenFileDialog();
                Fenetre_ouvrir.Filter = "Fichier N49 Writing Text (*.nwt)|*.nwt|Fichier Microsoft Bloc-notes (*.txt)|*.txt|Autre fichier (*.*)|*.*";
    
                if (Fenetre_ouvrir.ShowDialog() == true)
                {
                    string nomFichier = Fenetre_ouvrir.FileName;
                    StreamReader fichier = null;
                    try
                    {
                        fichier = new StreamReader(nomFichier);
                        Zone_de_saisie.Text = fichier.ReadToEnd();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Impossible d'ouvrir le fichier (" + ex.Message + ")", "Erreur");
                        return;
                    }
                    finally
                    {
                        if (fichier != null)
                        {
                            fichier.Dispose();
                        }
                    }
                }
            }
    ou Zone_de_saisie est la richtextbox.
    En rouge, c'est le code que bloque, le compilateur me dit que richtextbox n'acceptent pas cette "definition".
    En faite je l'utilisais pour mes textbox avant.
    Est ce que qqun peut me dire ce qu'il faut mettre a la place de "Text" pour pouvoir enregistrer dans un fichier le texte contenu dans la richtextbox ET les polices des differentes parties du texte (Comme les editeur de texte comme openoffice et word(et j'en passe^^)).
    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 91
    Points : 65
    Points
    65
    Par défaut
    Merci. Mais est il possible d'unir les 2 code du paragraphe "Loading a Document in RichTextBox" pour etre plus pratique?

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Pas compris la question....

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 91
    Points : 65
    Points
    65
    Par défaut
    Sur le site que tu m'a donné lors de ta premiere reponse, dans le paragraphe que j'ai cité precedament on doit d'abord ecrire le code principal de l'event dans click ET creer une class. Ne pourrait-on pas integrer cette classe (LoadTextDocument sur le site) directement dans l'event click (donc du 2 en 1)?

  6. #6
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    C'est pas une classe que tu dois créer mais une méthode. Et oui, tu peux tout mettre dans le meme code:

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    private void OpenMenuItem_Click(object sender, RoutedEventArgs e)
     
    {
     
        OpenFileDialog dlg = new OpenFileDialog();
     
        dlg.InitialDirectory = "c:\\";
     
        dlg.Filter = "Text files (*.txt)|*.txt|All Files (*.*)|*.*";
     
        dlg.RestoreDirectory = true;
     
        if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
     
        {
     
     
     
            TextRange range;
     
        System.IO.FileStream fStream;
     
        if (System.IO.File.Exists(fileName))
     
        {
     
            range = new TextRange(RichTextBox1.Document.ContentStart, RichTextBox1.Document.ContentEnd);
     
            fStream = new System.IO.FileStream(fileName, System.IO.FileMode.OpenOrCreate);
     
            range.Load(fStream, System.Windows.DataFormats.Text );
     
            fStream.Close();
     
        }
     
     
     
        }
     
    }

    Mais en termes d'organisation de code, c'est mieux de passer par une méthode

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 91
    Points : 65
    Points
    65
    Par défaut
    Merci c'est exactement se que je voulait ^^
    Par contre le compilateur me dit que fileName n'existe pas dans ce contexte (c'est ptete pas la bonne traduction mais bn...)
    Voila le code de la methode (avec tout en un):
    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 Sous_menu_Ouvrir_Click(object sender, RoutedEventArgs e)
            {
                OpenFileDialog Fenetre_ouvrir = new OpenFileDialog();
                Fenetre_ouvrir.Filter = "Fichier N49 Writing Text (*.nwt)|*.nwt|Fichier Microsoft Bloc-notes (*.txt)|*.txt|Autre fichier (*.*)|*.*";
                Fenetre_ouvrir.RestoreDirectory = true;
                if (Fenetre_ouvrir.ShowDialog() == true)
                {
                    TextRange range;
                    System.IO.FileStream fStream;
                    if (System.IO.File.Exists(fileName))
                    {
                        range = new TextRange(Zone_de_saisie.Document.ContentStart, Zone_de_saisie.Document.ContentEnd);
                        fStream = new System.IO.FileStream(fileName, System.IO.FileMode.OpenOrCreate);
                        range.Load(fStream, System.Windows.DataFormats.Text );
                        fStream.Close();
                    }
                }
            }
    Es-ce que je doit remplacer fileName par autre chose dans mon programme ou encore ajouter le bon using (j'ai fait un peu le menage chez les using qui ne me servait pas)?

  8. #8
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    fileName est dans ton cas donné par ton OpenFileDialog. Donc Fenetre_ouvrir.FileName.

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 91
    Points : 65
    Points
    65
    Par défaut
    Merci ca marche.

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 91
    Points : 65
    Points
    65
    Par défaut
    Enfaite j'ai essayer d'ouvrir diferents types de documents: le .doc, .odt et .txt.
    Je ne peut que ouvrir le txt. Les deux autres extentions (pour le odt c'est pas tres grave mais c'est surtout le .doc que je voudrai ouvrir) ne me mettent que quelques caracteres lisibles et des carrés.
    Il n'y aurait pas moyen de lire les doc, quitte a le faire avec le openfiledialog de windows form si c'est plus simple?
    Merci d'avance.

  11. #11
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Tu ne peux pas lire un fihicer Doc comme ca; il faut essayer de passer par du RTF.

  12. #12
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 91
    Points : 65
    Points
    65
    Par défaut
    Ok. Enfaite j'ai encore une nouvelle question (desolé je sais je suis un peu enervant):
    Lorsque j'ouvre un fichier .rtf, il ya dans ma richtextbox le bon texte mais aussi d'autre texte (un peu comme quand j'ouvre un fichier .doc ou .odt)
    Y'aurai pas moyen de l'ouvrir "normalement", avec juste le texte et sa police?
    Merci.

  13. #13
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Je n'ai pas compris ce que tu veux dire: tu peux réexpliquer ?

  14. #14
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 91
    Points : 65
    Points
    65
    Par défaut
    Quand j'ouvre un fichier .rtf, j'ai sa dans ma richtextbox:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
    {\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\lang1036\f0\fs20 Test:\par
    *.rtf\par
    }
    Quel serai le code qu'il faudrai mettre a la place de
    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
    OpenFileDialog Fenetre_ouvrir = new OpenFileDialog();
                Fenetre_ouvrir.Filter = "Fichier N49 Writing Text (*.nwt)|*.nwt|Fichier Microsoft Bloc-notes (*.txt)|*.txt|Autre fichier (*.*)|*.*";
                Fenetre_ouvrir.RestoreDirectory = true;
                if (Fenetre_ouvrir.ShowDialog() == true)
                {
                    TextRange range;
                    System.IO.FileStream fStream;
                    if (System.IO.File.Exists(Fenetre_ouvrir.FileName))
                    {
                        range = new TextRange(Zone_de_saisie.Document.ContentStart, Zone_de_saisie.Document.ContentEnd);
                        fStream = new System.IO.FileStream(Fenetre_ouvrir.FileName, System.IO.FileMode.OpenOrCreate);
                        range.Load(fStream, System.Windows.DataFormats.Text );
                        fStream.Close();
                    }
                }
    pour correctement lire un fichier rtf dans ma richtextbox?

  15. #15
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Ce que tu as est normal, c'est du RTF....

  16. #16
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 91
    Points : 65
    Points
    65
    Par défaut
    D'accord, mais on ne peut pas afficher ce texte "normalement" (comme les editeurs de textes)?
    Par exemple afficher ca:
    et charger la bonne police, au lieu de tout ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
    {\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\lang1036\f0\fs20 Test:\par
    *.rtf\par
    }

  17. #17
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 91
    Points : 65
    Points
    65
    Par défaut
    C'est bon j'est trouvé la solution en touchant un peut le code pour ouvrir un document:
    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
    public void Ouvrir()
            {
                OpenFileDialog Fenetre_ouvrir = new OpenFileDialog();
                Fenetre_ouvrir.Filter = "Fichier N49 Writing Text (*.nwt)|*.nwt|Fichier RichText (*.rtf)|*.rtf|Fichier Microsoft Bloc-notes (*.txt)|*.txt|Autre fichier (*.*)|*.*";
                if (Fenetre_ouvrir.ShowDialog() == true)
                {
                    TextRange range;
                    System.IO.FileStream fStream;
                    if (System.IO.File.Exists(Fenetre_ouvrir.FileName))
                    {
                        range = new TextRange(Zone_de_saisie.Document.ContentStart, Zone_de_saisie.Document.ContentEnd);
                        fStream = new System.IO.FileStream(Fenetre_ouvrir.FileName, System.IO.FileMode.OpenOrCreate);
                        range.Load(fStream, System.Windows.DataFormats.Rtf);
                        fStream.Close();
                    }
                }
            }

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

Discussions similaires

  1. probleme avec generic host process for win32 services
    Par thesorrow dans le forum Windows XP
    Réponses: 2
    Dernier message: 15/03/2007, 10h29
  2. Problème install Modem Asus avec amedyn
    Par PeGaZe dans le forum Matériel
    Réponses: 7
    Dernier message: 01/10/2004, 13h51
  3. [JSP] probleme de out.println() avec un document
    Par SEMPERE Benjamin dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 15/08/2004, 23h05
  4. [JSP] probleme de out.println() avec un document
    Par SEMPERE Benjamin dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 12/08/2004, 08h31
  5. Problème sur une cmd avec AWK
    Par OrangeBud dans le forum Linux
    Réponses: 3
    Dernier message: 02/06/2004, 10h51

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