Empecher le défilement d'un RichTextBox

cs_007 Messages postés 24 Date d'inscription jeudi 20 juin 2002 Statut Membre Dernière intervention 1 janvier 2007 - 11 janv. 2005 à 21:43
addamsmercredi Messages postés 121 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 27 juillet 2006 - 12 janv. 2005 à 20:04
Salut à tous,
Je cherche désespérément le moyen d'empecher un contrôle RichTextBox de défiler au fur et à mesure que l'utilisateur rentre le texte. En fait, j'aimerais trouver une solution our limiter sa zone d'input à ce qu'il voit sur l'écran, à lui ensuite de décider s'il veut la remplir avec du texte plus ou moins grand.

Quelq'un a-t-il une idée??
Je n'ai pas coutume de mettre la pression, mais là c'est assez urgent, donc si quelqu'un avait une idée, ce serait super sympa.

Merci d'avance,

James Bond

3 réponses

addamsmercredi Messages postés 121 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 27 juillet 2006
11 janv. 2005 à 22:37
Voici un bout de code qui pourra sûrement t'aider, il te restera à définir nblignemax qui limitera l'utilisateur à ce nombre de lignes :


Private Sub RichTextBox1_Change()


If RichTextBox1.GetLineFromChar(RichTextBox1.SelStart) > nblignemax Then
RichTextBox1.Text = left(RichTextBox1.Text, Len(RichTextBox1.Text) - 1)
End If


End Sub
0
cs_007 Messages postés 24 Date d'inscription jeudi 20 juin 2002 Statut Membre Dernière intervention 1 janvier 2007
12 janv. 2005 à 18:29
Salut à toi addamsmercredi, et déjà merci pour avoir répondu à mon post.

Cependant, ton code ne résout pas mon problème, car comme tu le sais on peut modifier la taille du texte dans un contrôle RichTextBox, or si je définit un nombre maximal de ligne à 12 et 10 pt, par exemple, cette limite retombe à 2 ou lorsque je tape en 72 pt. Et pour corser le tout, je ne peut pas me fier à la taille utilisée, car différentes tailles de texte doivent pouvoir cohabiter.
La seule solution que j'ai trouvée jusqu'à présent consiste à se faire renvoyer la hauteur du texte et la comparer à la hauteur du contrôle. Si celui-ci est trop petit par rapport au texte, j'affiche un messagebox à l'utilisateur en le prévenant que son texte risque de ne pas être affiché dans son intégralité et en lui proposant, soit d'ignorer, soit de corriger.

James Bond
0
addamsmercredi Messages postés 121 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 27 juillet 2006
12 janv. 2005 à 20:04
Salut,
En fait, j'ai déjà cherché la même chose que toi sans succès :
http://www.vbfrance.com/forum.v2.aspx?ID=356072
Sauf que moi, je ne veux pas bloquer la saisie du texte mais afficher la suite dans une autre feuille pour pouvoir l'imprimer en entier.
Pour finir, j'ai donc utilisé le même test If que celui que je t'ai mis dans ma première réponse juste après un RichTextBox1.UpTo (Len(RichTextBox1.Text)) pour bien me placer à la fin du texte et tant pis si l'utilisateur met une trop grosse police... c'est à lui de faire un petit peu attention... je n'ai pas trouvé d'autre solution car je ne sais pas comment avoir la hauteur du texte ou alors il faudrait la calculer en tenant compte à chaque ligne de la taille de la police...
0
Rejoignez-nous