/ / RichTextBox non si aggiorna costantemente quando usato come visualizzazione dello stato del testo - c #, winforms, textbox, richtextbox

RichTextBox non viene aggiornato costantemente quando utilizzato come visualizzazione dello stato del testo: c #, winforms, textbox, richtextbox

Sto cercando di utilizzare un RichTextBox come statovisualizza ma non si aggiorna ogni volta che accedo al testo di RichTextBox. Un normale TextBox multilinea si aggiorna ogni volta che viene aggiunto un nuovo testo, ma preferirei usare RichTextBox. Esiste una sorta di proprietà che deve essere impostata per vedere gli aggiornamenti?

AGGIORNARE: Inoltre, come faccio a far scorrere automaticamente verso il basso ogni messaggio viene visualizzato?

Come ho detto, se sostituisco il RichTextBox con aTextBox, posso vedere ogni riga dei messaggi mentre vengono scritti e scorrerà automaticamente verso il basso per visualizzare l'ultimo testo aggiunto.

void UpdateStatus(string textMessage)
{
if (InvokeRequired)
{
BeginInvoke(new MethodInvoker(() => UpdateStatus(textMessage)));
return;
}

richTextBox.AppendText(textMessage + Environment.NewLine);
}

risposte:

2 per risposta № 1

Una soluzione facile e veloce sarebbe

Application.DoEvents()


1 per risposta № 2

Per far scorrere automaticamente RichTextBox, si prega di utilizzare ScrollToCaret metodo:

richTextBox.AppendText("Hello");
richTextBox.ScrollToCaret();

0 per risposta № 3

Il tuo codice sembra come dovrebbe funzionare, assicurati di controllare la destra InvokeRequired bandiera:

void UpdateStatus(string textMessage)
{
if (richTextBox.InvokeRequired)
{
richTextBox.Invoke(new MethodInvoker(() => UpdateStatus(textMessage)));
return;
}

richTextBox.AppendText(textMessage + Environment.NewLine);
}