看來,使用System.Windows.Forms.RichTextBox
時,您可以使用textbox.AppendText()
或textbox.Text = ""
向文本框中添加文本。C#防止RichTextBox滾動/跳到頂部
AppendText
將滾動到底部並直接添加文本不會滾動,但會在用戶關注文本框時跳轉到頂部。
這裏是我的功能:
// Function to add a line to the textbox that gets called each time I want to add something
// console = textbox
public void addLine(String line)
{
// Invoking since this function gets accessed by another thread
console.Invoke((MethodInvoker)delegate
{
// Check if user wants the textbox to scroll
if (Settings.Default.enableScrolling)
{
// Only normal inserting into textbox here with AppendText()
}
else
{
// This is the part that doesn't work
// When adding text directly like this the textbox will jump to the top if the textbox is focused, which is pretty annoying
Console.WriteLine(line);
console.Text += "\r\n" + line;
}
});
}
我也嘗試導入user32.dll
和重載滾動功能,沒有工作這麼好。
有沒有人知道如何一勞永逸地停止滾動文本框?
它不應該走到最前面,也不會走到最前面,當然也不會當前選擇,而是保持目前的狀態。
這實際上會滾動到底部,如果集中並且不重點。 – user1137183