2010-06-23 127 views
2

我有一個稱爲控制檯的多行文本框。在運行時,這個文本框正在填充一些通信數據。我使用如何防止添加文本時滾動多行文本框?

TextBox.AppendText("txt\r\n"); 

向它添加一行並允許我自動向下滾動它。我的問題是我想能夠不讓它自動向下滾動。所以我想我會嘗試

TextBox.Text += "text"; 

但是,這會滾動到框的開頭。我最近的嘗試是使用TextBox.SelectionStart在寫完之前保存位置並將其恢復爲之後​​的狀態,但這似乎沒有什麼區別,仍然使我回到文本的開頭。

int txtPosition = Console.SelectionStart; 
Console.Text += "TextToAdd"; 
Console.SelectionStart = txtPosition; 

理想情況下,我希望能夠將盒子保持在原來的位置,而不是滾動到文本的開頭或結尾。

回答

2

我認爲你需要給你一個richtextbox而不是一個通用的文本框,這將爲你提供你想要的功能。

享受!

+0

謝謝,這真是棒極了。現在有其他一些問題,但慢慢地通過他們。 – Andy 2010-06-23 19:04:22

-1

對於一個WinForms文本框,你可能應該能夠做到這一點:

textBox.SelectionStart = 0; 
textBox.ScrollToCaret(); // force current position back to top