Refresh() automatique dans un control !!!

Résolu
silver_the_paladin Messages postés 3 Date d'inscription mardi 24 février 2004 Statut Membre Dernière intervention 24 décembre 2006 - 6 oct. 2005 à 01:50
silver_the_paladin Messages postés 3 Date d'inscription mardi 24 février 2004 Statut Membre Dernière intervention 24 décembre 2006 - 6 oct. 2005 à 20:56
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

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
6 oct. 2005 à 15:40
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 ).
3
silver_the_paladin Messages postés 3 Date d'inscription mardi 24 février 2004 Statut Membre Dernière intervention 24 décembre 2006
6 oct. 2005 à 20:56
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 :-)
3
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
6 oct. 2005 à 08:34
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)
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
6 oct. 2005 à 10:13
taoetc -> Le TextBox a aussi une méthode ScrollToCaret, qui est
utile quand tu utilises un TextBox avec la propriété MultiLine à True

Mx
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
6 oct. 2005 à 10:25
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)
0
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
6 oct. 2005 à 10:29
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)
0
Rejoignez-nous