C# 文本框起伏的自动滚动

C# 文本框起伏的自动滚动,c#,winforms,textbox,scroll,C#,Winforms,Textbox,Scroll,我正在将CMD输出重定向到多行文本框,我正在尝试使用以下代码自动向下滚动: textBox1.SelectionStart = textBox1.Text.Length; textBox1.ScrollToCaret(); textBox1.Refresh(); 但是它看起来真的很不稳定,我的意思是,每次输入一行时,它都会将滚动条定位在文本框的顶部,然后再定位到底部,这很难描述,所以我对它的发生进行了.gif记录: 有没有办法修复它?出于同样的目的,我使用RichTextBox: richTe

我正在将CMD输出重定向到多行文本框,我正在尝试使用以下代码自动向下滚动:

textBox1.SelectionStart = textBox1.Text.Length;
textBox1.ScrollToCaret();
textBox1.Refresh();
但是它看起来真的很不稳定,我的意思是,每次输入一行时,它都会将滚动条定位在文本框的顶部,然后再定位到底部,这很难描述,所以我对它的发生进行了.gif记录:


有没有办法修复它?

出于同样的目的,我使用RichTextBox:

richTextBox1.AppendText(cmdOutputMsg + "\r\n");
richTextBox1.ScrollToCaret();
通过这种方式,新文本总是添加到现有文本的末尾,而ScrollToCaret的焦点仍然是最后插入的文本


我认为使用普通文本框也会以同样的方式工作。

AppendText似乎做到了这一点,真不敢相信我没有想到这一点。谢谢