Bonjour à tous,
Est-ce possible de centré le Texte d 'une TextBox Verticalement?
Si oui comment faire?
Merci d'avance.
Bonjour à tous,
Est-ce possible de centré le Texte d 'une TextBox Verticalement?
Si oui comment faire?
Merci d'avance.
Une boîte de texte n'est pas faite pour celà.
Il est toujours possible d'écrire du code pour y parvenir, mais celà sera le résultat d'un long calcul à faire, à chaque modification du texte, en fonction : de la police utilisée (qui modifiera les textwidth et textheight), des dimensions d'affichages (hauteur et largeur de la Textbox), de ce que la textbox est ou non multiligne, etc...
Si de surcroît, la textbox est dotée de flêches de déroulement vertical, on ne comprend plus l'utilité d'un centrage vertical...
Mais ta question était : "si oui, comment faire ?"
La réponse est donc : un calcul en utilisant tous les paramètres et propriétés indiqués ci-dessus.
Comment faire ce calcul ? A toi de jouer... si tu y tiens à ce point...
![]()
Essaie AutoSize = true
Extrait de l'aide :
Pas testé, tu disPour une zone de texte à plusieurs lignes ne contenant pas de texte, la définition de AutoSize sur True affiche automatiquement le texte sous forme de colonne. La largeur de la colonne de texte est déterminée pour accueillir la lettre la plus large de cette taille des caractères. La hauteur de la colonne de texte est définie pour afficher tout le texte du contrôle TextBox.
A+
Edit
Autant pour moi, j'ai mal lu...
Il va falloir que je change de version. Avec la mienne (VB5), la propriété Aurosize ne concerne que les contôles Label et PictureBox..
Au fait : connaît-on la version qu'utilise bb62 ?
:
Désolé je n'ai pas trouver Autosize pour les TextBox, j'utilise Visual Basic 6.0.
La propriété AutoSize pour un TextBox n'existe qu'avec les composants de Microsoft Forms 2.0 Object Library, librairie issue de MS Office
On en apprend des choses avec toi... Mais tu es sûr que VB6 c'est mieux que VBA ?![]()
Rien n'interdit, si tu possèdes VB6 et Office, de faire appel aux composants de Microsoft Forms 2.0 dans un projet VBEnvoyé par ouskel'n'or
![]()
pourquoi ne pas utiliser un Richtextbox? je crois qu'il à cette prpriété.
sinon, il faut que tu prenne une police régulière (je sait plus comment on dit quand chaque caractère fait la même largeur) et que tu calcule combien tu peux mettre de caractères dans une largeur de ton text. ensuite, tu fait un split vbcrlf de ton text et pour chacunes des sous-chaines obtenues, tu fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part machaine(i)=string(" ",int((caractèremax-len(machaine))/2)) & machaine & string(" ",int((caractèremax-len(machaine))/2))
salut![]()
Méphisto : on dit police non proportionnelle. En anglais, certains disent aussi True
Pour le reste : Textwidth et Textheight peuvent être utilisés, mais le calcul (ce ne sera pas simple pour bb62) devra se faire à chaque événement change + voir ce que j'ai dit au tout début.![]()
Alors j'ai fais un petit truc qui marche impect :
J'ai créer une PictureBox et à l'intérieur de celle-ci j'ai mis ma TextBox.
J'ai fais le code suivant :
Mais je sais que cela n'est pas la meilleure solution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub Form_Load() 'la Text1 a son texte et est de la bonne taille,en flat center sans bordure ' dans Picture1 3d blanc avec bordure Picture1.Width = Text1.Width Text1.Left = 5 'bordures Text1.Top = Picture1.Height / 2 - Text1.Height / 2 End Sub
Si quelqu'un à une autre solution il peut me le dire.
Merci à tous
Partager