Refresh() automatique dans un control !!!

Résolu
Signaler
Messages postés
3
Date d'inscription
mardi 24 février 2004
Statut
Membre
Dernière intervention
24 décembre 2006
-
Messages postés
3
Date d'inscription
mardi 24 février 2004
Statut
Membre
Dernière intervention
24 décembre 2006
-
Bonjour tout le monde,

voila je suis sur un programme qui récupère le contenu d'un application console en temp réel, le problème vient de ma TextBox qui apparement fait un Refresh() a chaque fois que je lui passe du texte et remet automatiquement le curseur au début (alors que moi je veut afficher la fin). Donc a chaque fois je me retrouve a voir le début, la fin, le début, la fin, etc.... Ma question est la suivante : Est il possible de forcer le TextBox a ne pas faire de refresh()?

voici une partie du code :


private void MaFonction()
{
Process myproc =
new Process();

myproc.StartInfo.FileName = "monprog.exe";
myproc.StartInfo.RedirectStandardOutput =
true;
myproc.StartInfo.UseShellExecute =
false;
myproc.StartInfo.CreateNoWindow =
true;
myproc.Start();



while(myproc.StandardOutput.Peek() != -1)
{

textBox1.Text +=
myproc.StandardOutput.ReadLine();
textBox1.SelectionStart = textBox1.Text.Length;
textBox1.ScrollToCaret();
}

}

J'espère que quelqun va pouvoir m'aider (Cocoricoo p-e ?? ) merci d'avance

6 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
41
Salut, essayes quelque chose comme ça:

this.textBox.ScrollBars = ScrollBars.Both;
this.textBox.TextChanged += new EventHandler( textBox_TextChanged );


private void textBox_TextChanged( object sender, EventArgs e )
{
this.textBox.Focus( );
this.textBox.Select( this.textBox.Text.Length, 0 );
this.textBox.ScrollToCaret( );
}


ScrollToCaret marche uniquement si le contrôle est visible et si il à le focus.

TextBox a aussi une méthode AppendText( string text ).
Messages postés
3
Date d'inscription
mardi 24 février 2004
Statut
Membre
Dernière intervention
24 décembre 2006

Merci beaucoup pour tous vos conseils, j'ai trouvé, c'était simplement le TextBox.AppendText(message) qui fallait utilisé, car la il place toujours le curseur à la fin (me demandé pas pk lol)

merci à tous :-)
Messages postés
346
Date d'inscription
lundi 8 septembre 2003
Statut
Membre
Dernière intervention
3 septembre 2007
3
Si tu as ca, textBox1.ScrollToCaret();
ca veut dire que tu utilise plutot une richtextbox
Je connais pas trop ce controle, mais je l'ai quand meme utiliser, et pour ajouter du texte, je ferais simplement :

while(myproc.StandardOutput.Peek() != -1)
{
textBox1.SelectedText = myproc.StandardOutput.ReadLine();
textBox1.SelectionStart = textBox1.Text.Length;
textBox1.ScrollToCaret();
}



In the mood for ... ba heu, for quelque chose qui est vachement bien ( oui je sais , n'importe quoi)
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
55
taoetc -> Le TextBox a aussi une méthode ScrollToCaret, qui est
utile quand tu utilises un TextBox avec la propriété MultiLine à True

Mx
Messages postés
346
Date d'inscription
lundi 8 septembre 2003
Statut
Membre
Dernière intervention
3 septembre 2007
3
Oups, j'avais regardé pour tant ce matin, mais trop tot, c'est trop tot , et il faut croire que je loupes une ligne sur deux avant 9h
Encourageant pour le code que j'ai écrit

bon alors , pour le pb, y a pas de raison que ca marche pas
fait autrement
string textSortie= string.empty;
while(myproc.StandardOutput.Peek() != -1)
{
textSortie+= myproc.StandardOutput.ReadLine();
textBox1.Text= textSortie;
textBox1.ScrollToCaret();
}

Mais c'est pas tres beau ca

In the mood for ... ba heu, for quelque chose qui est vachement bien ( oui je sais , n'importe quoi)
Messages postés
346
Date d'inscription
lundi 8 septembre 2003
Statut
Membre
Dernière intervention
3 septembre 2007
3
Et je viens de relir le post du début , et j'ai encore rien compris, je vais arrete la les réponses

La richtextbox marche bien pour ton probleme , donc, ma premiere réponse était pas si mauvaise ,

Désolé pour les post précédent

In the mood for ... ba heu, for quelque chose qui est vachement bien ( oui je sais , n'importe quoi)