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 :

[VB.Net] Problème d'affichage de text dans une MessageBox


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 54
    Points : 37
    Points
    37
    Par défaut [VB.Net] Problème d'affichage de text dans une MessageBox
    Bonsoir tout le monde,
    Voila j'ai encore un petit problème :
    J'ai déclaré une structure qui est, en fait, un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
       Structure QuestionsStruc
            Public strQuestion As String
            Public intCode As Integer
            Public strTabReponses() As String
            Public strNomPhoto As String
            Public [u]strCorrection[/u] As String
        End Structure
        Private mStrTabQuestionsReponses() As QuestionsStruc
    Et j'aimerais maintenant afficher dans une MessageBox la correction d'une question (située dans un fichier) qui est dans la variable strCorrection de la structure. Pour cela j'ai écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MessageBox.Show(PP_strCorrection, "Correction",MessageBoxButtons.OK)
    Mais quand on m'affiche la correction elle s'inscrit comme je l'avais saisie au départ, c'est à dire du type : "....." & vbNewLine & "..."
    Voila j'ai cherché mais je n'ai pas trouvé comment on peut s'en sortir...
    Si vous avez une idée, je suis preneur
    Bonne soirée
    Nico[/code]

  2. #2
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    salut,
    tu ne peux pas afficher celà directement, à moins que j'ai mal saisi le probleme..
    Il faut que tu fasse un peu d'interprétation.

    déjà dans ton fichier, n'écris pas "la réponse" & vbNewLine & "à la question"
    Mais plutot la réponse£à la question

    utilise un caractère que tu es certain de ne pas rencontrer.

    tu créés en suite une fonction qui va balayer tous les caracteres et lorsque tu rencontre '£' tu concatene un vbNewLine a ta chaine. (je pense qu'on peut?-jamais fait)

    ensuite tu retourne la chaine interprétée.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 54
    Points : 37
    Points
    37
    Par défaut
    Merci NiamorH pour cette aide. Je crois que tu n'as pas tout à fait compris. J'essais tout simplement de passer des lignes dans mon MessageBox avec vbNewLine
    Ce qui s'affichera dans le MessageBox est uniquement la réponse à la question. Par ex. la première réponse est :

    "Le marquage au sol est une ligne discontinue et autorise donc le dépassement." & vbNewLine & "En revanche, je ne peux pas dépasser car j'approche d'une intersection."

    Ce texte vient d'un fichier texte Questions.txt et a été mis dans la "rubrique" strCorrection de la structure QuestionsStruc qui elle-même est un tableau (mStrTabQuestionsReponses)
    (Voir ci-dessus)

    J'ai essayé avec ta méthode mais je n'est pas réussi : il me mets toujours le texte tel quel dans le MessageBox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    PP_strCorrection.Replace("£"," & vbNewLine & ")
    MessageBox.Show(PP_strCorrection,"Correction")
    J'espère que vous pourrai m'aider car c'est mon dernier problème pour que tout marche..
    Voila sur ce, c'est l'heure du p'tit déj
    Bon appétit

  4. #4
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Citation Envoyé par eultartuffe
    il me mets toujours le texte tel quel dans le MessageBox
    Ce qui est tout à fait normal. Il y a un topic du même genre récemment avec le problème des \ dans une chaîne en C#, ici.

    Pour reprendre ce que disait Merlin : "Il y a mélange entre le contenu d'une variable et la syntaxe particulière d'un langage particulier."

    C'est la même chose ici pour ce qui est du contenu de la variable. Ton texte est dans un fichier et tu initialises une variable en lisant dans ce fichier. Ton vbNewLine ne sera jamais interprété à ce moment puisque le tout sera considéré comme une chaîne.

    Ce n'est pas équivalent à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maChaine = "Le marquage au sol est une ligne discontinue et autorise donc le dépassement." & vbNewLine & "En revanche, je ne peux pas dépasser car j'approche d'une intersection."
    En lisant dans le fichier, tu serais plutôt dans ce cadre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maChaine = "Le marquage au sol est une ligne discontinue et autorise donc le dépassement."" & vbNewLine & ""En revanche, je ne peux pas dépasser car j'approche d'une intersection."
    Je ne connais pas le VB.Net du tout, mais il faut dédoubler les quotes il me semble ^^

    Le vbNewLine n'est donc pas interprété et tu n'auras pas de retour à la ligne dans ta chaîne, tu auras juste la chaîne "& vbNewLine &"

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 54
    Points : 37
    Points
    37
    Par défaut
    Ah daccord je comprends mieux maintenant pourquoi ça ne marche pas..Merci
    Par contre, je ne sais pas du tout ce qu'est le dédoublage...Et encore moins les "quotes" Je vais essayé de me renseigner mais je crois que là, ça dépasse mon niveau
    En tout cas , merci

  6. #6
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Citation Envoyé par eultartuffe
    Ah daccord je comprends mieux maintenant pourquoi ça ne marche pas..Merci
    Je ne t'ai donné aucune solution petit scarabé, juste l'origine du problème, ne soit pas si pressé ^^

    Une solution possible est de mettre un caractère spécial là ou tu veux un retour à la ligne (comme le £ cité plus haut). Quand tu récupères la chaîne, tu effectues un Split de cette chaîne sur le caractère £. Ensuite tu parcours le tableau de chaînes renvoyé par le Split et tu ajoutes, dans une variable, chaque ligne avec un retour à la ligne entre chaque de manière à obtenir le résultat souhaité

    En très gros (et surtout que je ne connais pas du tout le VB.Net), en supposant que maChaine contienne la chaîne lue dans le fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    string nouvelleChaîne
     
    foreach(string s in maChaine.Split('£'))
    {
          nouvelleChaîne = nouvelleChaîne & s & vbNewLine
    }

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 54
    Points : 37
    Points
    37
    Par défaut
    Merci beaucoup StormimOn
    J'ai enfin réussi en suivant ton exemple
    Et ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim PF_strChaineDepart, PF_strChaineModifiee As String
             Dim PF_strTabSousChaines() As String
             Dim PF_intIndice As Integer
     
             PF_strChaineDepart = mStrTabQuestionsReponses _(mIntIndiceQuestion).strCorrection
             PF_strTabSousChaines = PF_strChaineDepart.Split("&")
             For PF_intIndice = 0 To PF_strTabSousChaines.Length - 1
                PF_strChaineModifiee = PF_strChaineModifiee & vbNewLine & _
                                       PF_strTabSousChaines(PF_intIndice)
            Next
    J'ai juste déclaré un tableau en + pour pouvoir stocker les sous chaines
    Merci encore
    Bonne soirée

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

Discussions similaires

  1. [Débutant] probléme d'affichage d'alerte dans une page asp.net
    Par maria_info dans le forum ASP.NET
    Réponses: 1
    Dernier message: 26/10/2011, 16h38
  2. problème d'affichage de text dans textbox
    Par sky88 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/09/2009, 08h48
  3. Problème d'affichage de date dans une base de donnée
    Par Gouyon dans le forum C++Builder
    Réponses: 7
    Dernier message: 11/04/2007, 07h57
  4. Réponses: 4
    Dernier message: 07/02/2007, 23h33
  5. [XSLT]problème d'appel de texte dans une balise à partir d'un attribut
    Par docteur chépère dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 18/01/2007, 10h57

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