[英]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.