每页Winforms文本框行

时间:2009-07-30 11:02:40

标签: c# winforms .net-2.0

我们在.NET 2.0中有许多多行,可滚动的Winforms文本框控件,需要实现分页,以便用户只能通过一次移动单个页面(完全控件的文本值)来导航其内容

作为其中的一部分,我需要获取可在屏幕上随时可见的文本全行数,以计算文本框包含的页数。

我很确定没有Windows消息可以让我直接获取这些信息,也无法找到可接受的解决方案来解决这个问题。

以下是我们已经实施的当前解决方案,这往往会给出至少一行的舍入误差,因此它不太成功。

public int LinesPerPage
{
    get 
    {
        return (int)(this.Height / this.Font.Height); 
    }
}

理想情况下,我想知道在向控件绘制文本时使用的算法,但如果这不可用,那么人们会非常感谢其他建议。

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

public int LinesPerPage    
{     
   get   
   {      
      return (int)(this.ClientSize.Height / this.Font.Height);
   }
}

答案 1 :(得分:0)

System.Drawing.Graphics类有一个名为MeasureString的方法。该方法的一个重载返回适合的行(根据传入的其他参数可见的内容)。

相关问题