Centré du Texte dans une TextBox

Bonjour

J’ai un zone textBox dans propriété de l’objet j’ai

TextAlibn : 2 ou fmTextAlignCenter

MultiLine : True

WordWrap : True

Dans ma zone textBox ça donne ça

________________

| Bonjour |

| |

|_____________|

Je voudrai qu’il soit centré

_______________

| |

| Bonjour |

|______________|

Si que l’un peut m’aider.

Merci

134frm2016-fr.xlsm (28.93 Ko)

Bonjour,

Avec les propriétés de ta textBox tu peux juste centrer horizontalement

pour centrer verticalement je te propose cette astuce :

selectionne ton texte > format > centrer sur la feuille > centrer verticalement

Cordialement

NL

Bonjour,

Alors ce que je te propose est assez scabreux mais comme il est très difficile de centrer verticalement du texte dans un TextBox ou même dans un Label car il n'y a pas de propriété permettant cela.

Regarde si ça te convient. Tu poses un contrôle Label sur ta Form (ici nommé "Label1") et tu lances ! Ce qui est un peut gênant c'est la position du curseur qui n'est pas juste devant le texte.

ça fonctionne de la manière suivante, le TextBox a sa fonte de la même couleur que le fond et le Label reçois le texte tapé dans le TextBox puis le Label est positionné au centre du TextBox :

Private Sub UserForm_Initialize()

    With Label1

        .Caption = ""
        .BackStyle = fmBackStyleTransparent
        .BorderStyle = fmBorderStyleNone
        .Height = 12
        .Width = 0
        .Font.Size = txtTexte.Font.Size
        .Font.Name = txtTexte.Font.Name
        .WordWrap = True

    End With

    With txtTexte

        .ForeColor = .BackColor
        .AutoSize = False
        .TextAlign = fmTextAlignCenter
        .WordWrap = False

    End With

End Sub

Private Sub txtTexte_Change()

        Dim Largeur As Single

        Label1.Caption = txtTexte.Text

        'récupère la largeur par rapport au texte en mettant
        'AutoSize à True puis le remet à False de façon à ce que
        'le texte de la 1ère ligne soit sur la largeur du TextBox
        Label1.AutoSize = True: Largeur = Label1.Width: Label1.AutoSize = False

        'même largeur pour les deux
        Label1.Width = txtTexte.Width

        'centre verticalement et horizontalement
        Label1.Left = txtTexte.Left + txtTexte.Width / 2 - Largeur / 2
        Label1.Top = txtTexte.Top + txtTexte.Height / 2 - Label1.Height / 2

        'Une fois la 1ère ligne remplie, la largeur du Label reste identique
        'à celle de la TextBox et on peut autoriser adaptation de la largeur au texte
        If Label1.Width >= txtTexte.Width Then Label1.AutoSize = True

End Sub
Rechercher des sujets similaires à "centre texte textbox"