【问题标题】:Get text box's scrollbar position获取文本框的滚动条位置
【发布时间】:2012-03-24 15:11:22
【问题描述】:

我有一个文本框,其内容不断变化,每当发生这种情况时,滚动条会自动重置回顶部(不仅仅是文本框,我的另一个列表视图的行为方式相同)。无论如何要保存当前的滚动位置,然后再加载它?每次发生更改时都必须一直向下滚动文本框/列表视图,这很烦人。

【问题讨论】:

  • 请不要在标题前加上“C# WinForms”之类的前缀。这就是标签的用途。

标签: c# .net winforms frameworks scrollbar


【解决方案1】:

仅当您使用“多行”设置为 true 的普通文本框时才会发生此行为。如果改用 RichTextBox,则添加新文本时滚动条的位置不会改变。

【讨论】:

  • 不,我想将它滚动到更新发生之前的位置,而不是最后,因此阅读文本的用户甚至不会知道框的内容已更新。
  • 我不确定我是否清楚您正在尝试做什么。如果需要,您可以在更新之前和 udpate 之后调用此代码。
  • 我已经尝试过了,但它只是将滚动条一直移动到底部,这不是我想要的。我只希望滚动条保持冻结状态,除非用户移动它,而不是通过更新文本框本身。
  • 谢谢。但是,我不太明白他在做什么,请您详细说明(尤其是那些重点的事情)?如果我使用的是普通文本框而不是富文本框,这会起作用吗?
  • @IcySnow,您应该为此使用富文本框。添加新文本时,调用 AppendText() 方法不会更改滚动位置。使用多行设置为 true 的普通文本框将在添加新文本时重置滚动位置。
猜你喜欢
  • 1970-01-01
  • 2023-01-10
  • 2021-11-24
  • 2014-02-23
  • 1970-01-01
  • 2021-09-06
  • 2023-01-10
  • 2012-08-21
  • 1970-01-01
相关资源
最近更新 更多