簡體   English   中英

每頁Winforms文本框行

[英]Winforms textbox lines per page

.NET 2.0中有許多多行,可滾動的Winforms文本框控件,這些控件需要實現分頁,以便允許用戶僅通過一次移動單個頁面(包含完整控件的文本)來導航其內容。

為此,我需要獲取在任何時候都可以在屏幕上看到的整行文本數,以計算出該文本框包含的頁面數。

我相當確定沒有Windows消息可以直接獲取此信息,也無法為該問題找到可接受的解決方案。

以下是我們已實施的當前解決方案,該解決方案有時會至少產生四舍五入的舍入誤差,因此它的成功程度較小。

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

理想情況下,我想知道在向控件繪制文本時使用的算法,但是如果此方法不可用,其他人的建議將不勝感激。

您可以嘗試以下方法:

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

System.Drawing.Graphics類具有一個稱為MeasureString的方法。 方法的重載之一返回擬合的行(根據傳入的其他參數將可見)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM