Richtextbox et appendtext

Signaler
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
Messages postés
412
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 août 2007
-
y aurait t'il un moyen d'empecher le "ScrollToCaret" (enfin, son equivalent quoi) que se fait automatiquement quand on fait un AppendText et que le controle RichTextBox à le focus ?

Cocoricoooooooo !!!!

15 réponses

Messages postés
656
Date d'inscription
mercredi 22 août 2001
Statut
Membre
Dernière intervention
11 mars 2005
13
Salut,

Je viens de faire une appli avec juste un richtextbox et un bouton dont voici le code tu click.
(Je n'ai ajuster aucune propriété spéciale pour le richtextbox)

private void button1_Click(object sender, System.EventArgs e)
{
       richTextBox1.AppendText("sdfg djfs hgkdjshg kjdshgkj sdhfgjkhsdg sdfg\n");
}


Au bout de plusieur dizaines de clics, le texte continue a s'ajouter en dessous mais la barre de defilement ne descends pas, en gros je reste sur les premières lignes de textes, les nouvelles je ne les vois pas apparaitre.
Donc ce que j'en conclut c'est que par défaut AppendText ne t'amene pas sur le dernier caractère ajouté.

Tu dois avoir quelque chose d'autre qui te produit cet effet.

[Membre du Labo .NET]
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
justement le truc qui fait que ça ne descend pas tout seul C le clic
comme tu clique sur un bouton, le richtextbox n'a pas le focus, donc la scroll ne descend pas
refait le test avec un timer qui fait un appendtext et tu verra mon prob

en fait je commence carrement à me demander si je V pas tenter de carrement faire un controle
en effet je ne me sert du richtextbox juste pour les couleurs etc
je n'ai pas besoin des fonctions d'edition vu que je ne veux faire que de l'affichage avec (tout en laissant quand même la possibilité de c/c)
mais alors là pour créer un controle d'affichage avec scroll et possibilité de selectionner le texte je sens que je V me marrer ^^

Cocoricoooooooo !!!!
Messages postés
656
Date d'inscription
mercredi 22 août 2001
Statut
Membre
Dernière intervention
11 mars 2005
13
Oui effectivement avec un Timer ca scroll tout seul.

Avec un richTextBox1.SelectionStart = 0; apres chaque AppendText le scroll bouge reste en haut. (On dirait tout de meme qu'il descend puis remonte, a analyser ...)

Cuicuiiiiiiiiii !!!!

[Membre du Labo .NET]
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
"Cuicuiiiiiiiiii !!!!" => lol
oui, il descend puis remonte
car le "carret" doit forcement etre visible sur un editeur de texte
d'où le fait de la descente quand le rich à le focus
en fait je voudrais obtenir un truc du même genre que l'affichage de mirc par exemple
et je commence à douter que l'utilisation du rich soit une bonne idée

Cocoricoooooooo !!!!
Messages postés
656
Date d'inscription
mercredi 22 août 2001
Statut
Membre
Dernière intervention
11 mars 2005
13
Mais sur mIRC le texte s'envole vers le haut au fur et a mesure, c'est bien ce que fait le richtextbox par défaut avec les AppendText, non ?

[Membre du Labo .NET]
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
oui
sauf que si la scroll n'est pas deja en position basse le texte reste où il est
or là dès que le focus est sur le rich C mort pour faire ça

en fait faudrais avoir un richtextbox sans carret et possibbilité de controler les scroll
lol

Cocoricoooooooo !!!!
Messages postés
656
Date d'inscription
mercredi 22 août 2001
Statut
Membre
Dernière intervention
11 mars 2005
13
Pourquoi ne génère tu pas un fichier XML et tu fe un XSL derrière pour mettre en forme le tout ?
Ensuite tu prends le composant COM de IE pour afficher ton fichier XML.

[Membre du Labo .NET]
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
J avais pas penser
faudras que je tente ça pour voir
mais G un peu peur pour quand plusieurs lignes arriverons à la seconde

Cocoricoooooooo !!!!
Messages postés
412
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 août 2007

Genre moi j'ai le problème inverse et j'arrive pas à m'en sortir, j'écris du texte depuis une textBox que je rajoute dans le richtextbox (genre chat en fait).. Le texte est ajouté avec append texte au moment ou il arrive via le socket, mais ce CON reste sur la première ligne motherfucker..

Le seul truc qui fonctionne, c'est si j'ajoute du texte quand la FORM n'a pas le focus.. Genre...
Il veux pas desendre ce trou duc (dsl lol)
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
envoi un message au scroll via l'api windows pour qu'il scroll jusqu'en bas
ça fonctionne bien en etant en wordwrap

Cocoricoooooooo !!!!
Messages postés
412
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 août 2007

Hummmm

Je connais pas le nom de la fonction de l'API, tu pourrais m'écrire le ptit bout de code? Ce serait sympa
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
les constantes requises :
const int WM_VSCROLL = 0x0115;
const int SB_BOTTOM = 7;


le DllImport
[DllImport("User32.dll")]
private static extern int SendMessage(IntPtr hWnd, uint Msg, uint wParam, uint lparam);


l'appel
SendMessage(richTextBox_Salle.Handle, WM_VSCROLL, SB_BOTTOM, 0 );


Cocoricoooooooo !!!!
Messages postés
412
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 août 2007

Thank you boy ;-)
Messages postés
127
Date d'inscription
dimanche 7 mars 2004
Statut
Membre
Dernière intervention
6 juin 2008

Bonjour;

J'ai un ptit probleme avec [DllImport("User32.dll")] , j'ai une erreur DllImport introuvable.

Merci

fred
Messages postés
412
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 août 2007

using System.Runtime.InteropServices;

-------------------------
Trambert le vert