【问题标题】:How to disable flickering of scroll bar when constantly changing multiline text box content?不断更改多行文本框内容时如何禁用滚动条闪烁?
【发布时间】:2012-02-13 15:43:14
【问题描述】:

所以我使用这段代码,每次我向它添加内容时,它都会将光标移动到文本框内容的末尾。

void txtDisplay_TextChanged(object sender, EventArgs e)
{
    txtDisplay.SelectionStart = txtDisplay.Text.Length;
    txtDisplay.ScrollToCaret();
    txtDisplay.Refresh();
}

问题是,每次我在文本框中添加内容时,我都会看到文本框滚动条上下闪烁。每秒执行 10 次似乎会消耗一些处理能力,而且看起来很丑。

如何让滚动条一直向下滚动?

【问题讨论】:

  • 确保使用 AppendText() 而不是分配 Text 属性。
  • 您向最终用户提出了很多要求,以尝试跟上每秒更新 10 次的文本框。尝试将其中一些“更新”缓冲到一个变量中,然后以更合理的速率使用该变量更新文本框。
  • @LarsTech,这是个好主意。我没有想到。

标签: c# winforms textbox scroll


【解决方案1】:

你好(再次:)),

我刚刚寻找了一些避免这种闪烁的方法,我发现 this post 探索了 SelectedText 属性和 AppendText() 方法,最新的方法实际上是附加文本和滚动仅如果有必要。

希望对您有所帮助!

【讨论】:

  • 不错。我之前尝试过,但我的格式不正确,文章指出了如何做到这一点。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-17
  • 2011-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-22
相关资源
最近更新 更多