【发布时间】:2009-07-30 11:02:40
【问题描述】:
我们在 .NET 2.0 中有许多多行、可滚动的 Winforms 文本框控件,它们需要实现分页,以允许用户一次仅通过移动单个页面(整个控件的文本价值)来导航其内容.
作为其中的一部分,我需要获取可以在任何时候在屏幕上可见的完整文本行数,以计算出文本框包含多少页。
我很确定没有任何 Windows 消息可以让我直接获取此信息,我也无法为此问题制定出可接受的解决方案。
以下是我们目前实施的解决方案,这往往会偶尔产生至少一行的舍入误差,因此不太成功。
public int LinesPerPage
{
get
{
return (int)(this.Height / this.Font.Height);
}
}
理想情况下,我想知道在将文本绘制到控件时使用的算法,但如果这不可用并且人们提出的其他建议将不胜感激。
【问题讨论】:
-
如果您使用的是可滚动的文本框,我假设您想要文本框在滚动之前可以容纳的行数?