Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

richtextbox + scrollbar

1 réponse
Avatar
claiyah
Bonjour,
SVP depuis des mois je suis à la recherche d'une solution à mon problème et j'ai trouvé que sur ce site il y a des sujet intéressant et des bonne réponse alors je me suis dit que vous pouvez peut être m'aider.
j'ai un richtextbox avec un scrollbar horizontal et verticale, j'ajoute du texte à la richtextbox toute les 1 seconde en utilisant rtb.selstart = len(rtb.text) : rtb.seltext = "txt à ajouter ici"
et par conséquence le pointeur de la souris se met à la fin du texte et la scrol à la position maximale.
jusqu'au la tout va bien, mais quand quelqu'un monte un peut la scrol pour lire des messages précèdent et au meme temps un message s'ajoute à la richtextbox la scrol se remet au position maximal (en bas) ce qui empech la lecture des message précédent.
on ma suggérer d'utiliser l'api loockwindowupdate pour ajouter un text mais je sais pas comment récupérer la position de la scroll avant l'ajout du text et comment la remettre a cette position apres l'ajout ?
y a t il un moyen de le faire svp ? (récupérer la position de la scrollbar de la richtextbox puis ajout du texte puis remettre la scrollbar à sa position initiale)
merci d'avance

1 réponse

Avatar
at
claiyah a présenté l'énoncé suivant :
Bonjour,
SVP depuis des mois je suis à la recherche d'une solution à mon problème et
j'ai trouvé que sur ce site il y a des sujet intéressant et des bonne réponse
alors je me suis dit que vous pouvez peut être m'aider.
j'ai un richtextbox avec un scrollbar horizontal et verticale, j'ajoute du
texte à la richtextbox toute les 1 seconde en utilisant rtb.selstart > len(rtb.text) : rtb.seltext = "txt à ajouter ici"
et par conséquence le pointeur de la souris se met à la fin du texte et la
scrol à la position maximale.
jusqu'au la tout va bien, mais quand quelqu'un monte un peut la scrol pour
lire des messages précèdent et au meme temps un message s'ajoute à la
richtextbox la scrol se remet au position maximal (en bas) ce qui empech la
lecture des message précédent.
on ma suggérer d'utiliser l'api loockwindowupdate pour ajouter un text mais
je sais pas comment récupérer la position de la scroll avant l'ajout du text
et comment la remettre a cette position apres l'ajout ?
y a t il un moyen de le faire svp ? (récupérer la position de la scrollbar de
la richtextbox puis ajout du texte puis remettre la scrollbar à sa position
initiale)
merci d'avance



Tu peux aussi le faire avec

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA"
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam
As Any) As Long
Private Const WM_SETREDRAW = &HB


Et à condition d'ajouter un bouton pour desactiver l'autoscroll et de
virer rtb.SelStart = Len(rtb.Text) avant l'ajout du texte et de "jouer"
sur la proprièté de

SendMessage rtb.hwnd, WM_SETREDRAW, True, 0&

A mettre dans le code du bouton ou de la case à cocher, cela permet de
revenir en arrière malgré l'ajout de texte dans ta richtextbox.

Tu peux revenir à l'autoscroll avec un simple

rtb.SelStart = Len(rtb.Text)

Il doit y avoir moyen de trouver une subtilité pour éviter de passer
par un bouton.

Bye