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

VB 6 et antérieur Discussion :

Alignement vertical de texte dans un TextBox


Sujet :

VB 6 et antérieur

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    610
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 610
    Points : 213
    Points
    213
    Par défaut Problème alignement de texte dans un RichTextBox
    Bonjour,

    Je cherche à:
    1) provoquer un changement de ligne dans un RichTextBox
    2) aligner mon texte verticalement
    (j'affiche des lignes de valeurs héxadécimales et j'ai des problèmes
    d'alignement avec certains caractères.
    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    F1 -> VbCrLf

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    610
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 610
    Points : 213
    Points
    213
    Par défaut
    Merci, tu as été plus rapide que moi, je venais de trouver la réponse à ma question.

    Question Bonus :

    Je souhaite formatter mon affichage dans ma TexBox pour que les caractères soient bien alignés verticalement.
    J'ai tenté plusieurs polices (courrier New, etc. ) mais je n'ai pas l'impression que cela change grand chose à chaque fois.

    Une solution ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Tu as essayé Align=Center ?

  5. #5
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Et?

  6. #6
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Si tu cherches une police dont tous les caractères font la même largeur, il y a la police "Courier" par exemple
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    610
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 610
    Points : 213
    Points
    213
    Par défaut
    Ce n'est pas cela que je cherche à faire.
    J'affiche des valeurs Hexadécimales sur 2 digits séparées par un espace.
    Je souhaite que tous les caractères soient alignés verticalement comme dans un éditeur hexa standard.

  8. #8
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Ben justement, c'est bien ce que j'avais compris et la police Courier permet celà mais bon, fais comme tu veux
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    610
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 610
    Points : 213
    Points
    213
    Par défaut
    Je l'ai définie dans les propriété de mon contrôle RichtextBox ainsi que dans une ListBox, mais apparement sans effet.
    D'ailleurs quelle que soit la police sélectionnée l'affichage est toujours identique.

    Faut-il absolument le spécifier dans le code ??

    ==> Cela marche mais à condition que je spécifie la police 'courrier' sur ma fenêtre. Sur le contrôle seul cela ne suffit pas.

  10. #10
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Dans un RichTextBox, quand tu veux définir une police pour le texte, c'est toujours le texte sélectionné qui reçoit le nouvel attribut de police, ou encore à partir du point d'insertion (la position du cruseur, si tu tapes du texte par la suite). Il faut mieux définir cette propriété dans le Form_Load avant d'y mettre quelque donnée que ce soit.

  11. #11
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour,
    Avec les spécifications que tu donne il serrait plus intérressant d'employé un RichtText, L'appuit de ENTER met automatiquement un CR et il dispose de la fonction de tabulation pour aligné tes lignes.
    A+

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    610
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 610
    Points : 213
    Points
    213
    Par défaut
    Donc si je comprends bien, je suis obligé d'adopter dans mon formulaire la même police que dans mon RichTextBox ?

    Il existe une différence entre un RichText et un RichtextBox ? Ou trouve-ton ce contrôle ?

  13. #13
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Je ne comprends vraiment pas ton problème, je viens de faire l'essai avec un controle richTextBox (l'autre RichText n'existe pas, probablement une erreur de frappe).
    Je lui ai mis la police "Courier"
    Tous mes caractères sont PARFAITEMENT alignés, je n'ai pas besion de modifier la police de la feuille.
    Images attachées Images attachées  
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  14. #14
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    610
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 610
    Points : 213
    Points
    213
    Par défaut
    Je pense que mon problème vient du fait que je fixe la police au moment de l'édition du code avec la fenêtre de propriétés.

    Tu utilises la méthode SelFont ?
    Un bout de code ?

    Merci d'avance

  15. #15
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Prorpiété font du controle en mode édition.
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  16. #16
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    610
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 610
    Points : 213
    Points
    213
    Par défaut
    Voici ce que cela donne dans mon cas (image attachée).

    Je cherche à faire un affichage de mot binaires en hexa. Le problème apparait quand l'affichage comporte des lettres. Si je n'affiche que des valeurs numériques elles sont bien allignées.

    Voici un exemple de 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
        Do While Not EOF(1)
            Get #1, IndiceFile, Octet
            'Conversion HEXA de la valeur Binaire
            ValHexa = DecimalToBase(Octet, 16)
     
            'Utilisation du ListBox
            ChaineHexa = ChaineHexa & LCase(ValHexa) & "."
     
            If Len(ChaineHexa) = 48 Then
                RTxtBoxHexa.Text = RTxtBoxHexa.Text & ChaineHexa & vbCrLf
                ChaineHexa = ""
            End If
            IndiceFile = IndiceFile + 1
        Loop
        'fermeture du fichier
        Close #1
    Images attachées Images attachées  

  17. #17
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    On peut en discuter 107 ans si tu veux mais à priori ce n'est pas la police Courier que tu utilises, essayes sur Word ou le Bloc Note avec la police Courier que tu as sur ta machine et regardes si c'est bien une police dont tous les caractères font la même largeur.
    Si oui, c'est que la police de ton controle n'est pas la bonne.
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  18. #18
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    610
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 610
    Points : 213
    Points
    213
    Par défaut
    Justement je ne veux pas en discuter 107.
    Je ne pensai pas perdre autant de temps sur ce genre de c.....ie .

    Dans les propriétés de mon contrôle j'ai beau mettre n'importe quelle police, cela ne change rien.

    Je commence à avoir une piste. J'ai crée cette application SDI à l'aide de l'assistant VB et je vois que dans le module module1.bas qu'il crée automatiquement j'ai le code suivant :

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    Sub LoadResStrings(frm As Form)
        On Error Resume Next
     
     
        Dim ctl As Control
        Dim obj As Object
        Dim fnt As Object
        Dim sCtlType As String
        Dim nVal As Integer
     
     
        'Définit la légende de la feuille
        frm.Caption = LoadResString(CInt(frm.Tag))
     
     
        'Définit la police
        Set fnt = frm.Font
        fnt.Name = LoadResString(20)
        fnt.Size = CInt(LoadResString(21))
     
     
        'Définit les légendes des contrôles en utilisant la
        'propriété caption pour les éléments de menu et la propriété Tag
        'pour tous les autres contrôles
        For Each ctl In frm.Controls
            Set ctl.Font = fnt
            sCtlType = TypeName(ctl)
            If sCtlType = "Label" Then
                ctl.Caption = LoadResString(CInt(ctl.Tag))
            ElseIf sCtlType = "Menu" Then
                ctl.Caption = LoadResString(CInt(ctl.Caption))
            ElseIf sCtlType = "TabStrip" Then
                For Each obj In ctl.Tabs
                    obj.Caption = LoadResString(CInt(obj.Tag))
                    obj.ToolTipText = LoadResString(CInt(obj.ToolTipText))
                Next
            ElseIf sCtlType = "Toolbar" Then
                For Each obj In ctl.Buttons
                    obj.ToolTipText = LoadResString(CInt(obj.ToolTipText))
                Next
            ElseIf sCtlType = "ListView" Then
                For Each obj In ctl.ColumnHeaders
                    obj.Text = LoadResString(CInt(obj.Tag))
                Next
            Else
                nVal = 0
                nVal = Val(ctl.Tag)
                If nVal > 0 Then ctl.Caption = LoadResString(nVal)
                nVal = 0
                nVal = Val(ctl.ToolTipText)
                If nVal > 0 Then ctl.ToolTipText = LoadResString(nVal)
            End If
        Next
     
     
    End Sub
    Qui me force les polices de tous mes contrôles.

    TERMINE, je n'utilise plus jamais les assistants VB..
    C'est la deuxième fois que cela me fait le coup ...

  19. #19
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Tu utilises quoi pour afficher, un richTextBox ? Si c'est le cas, alors, je répète :
    Tu dois sélectionner tout le texte pour pouvoir lui attribuer une police. Le contrôle RichTextBox ne se comporte pas comme un éditeur de texte mais comme un traitement de texte. Tout nouvel attribut de police est appliqué à partir de la position du curseur ou pour le texte sélectionné.

    Tu peux aussi définir la police par défaut en mode Design avant que du texte ne soit placé dedans.

  20. #20
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Zaza, tu serais pas dans la cavalerie ?
    Je crois que c'est résolu, cela venait de l'assistant qui changeait la police de caractère à l'insu du plein gré de lio33
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2002] Alignement vertical du texte dans un label
    Par Paenitentia dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/10/2011, 14h17
  2. Aligner verticalement un Text dans un TextBox ou Label
    Par DzBadBoy dans le forum VBA Access
    Réponses: 9
    Dernier message: 29/06/2010, 06h06
  3. [FPDF] alignement vertical du texte dans une cellule
    Par schwarzy2 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 10/06/2008, 10h08
  4. Alignement vertical du texte dans un FormattedText
    Par olsimare dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 14/03/2008, 23h19
  5. Alignement vertical de text dans 2 objets
    Par E.Bzz dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 08/03/2007, 16h36

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