我需要一種方法來確定多列TextBox
中的顯示文本的大小,以將Scrollbars
屬性設置爲正確的值。如何獲取文本框中顯示的文本的大小
由於它是某種增強MessageBox
我的工作,MessageBox
的大小應根據字符串中帶有換行符的文本的高度和寬度來確定。
當前我使用此代碼來確定MessageBox
的大小,具體取決於要輸入的文本。但是您看到MessageBox
已確定MaximiumSize
。文本本身的TextBox也啓用了WordWrap
。所以未定義的唯一的東西是文本Height
插入到TextBox.Text後。
SizeF textSize = this.tbxText.CreateGraphics().MeasureString(message, this.tbxText.Font);
int frmWidth = picWidth + (int)textSize.Width;
if (frmWidth > this.MaximumSize.Width)
{
frmWidth = this.MaximumSize.Width;
}
else if (frmWidth < this.MinimumSize.Width)
{
frmWidth = this.MinimumSize.Width;
}
int frmHeight = picHeight + (int)textSize.Height + pnlButtons.Height + pnlInput.Height;
if (frmHeight > this.MaximumSize.Height)
{
frmHeight = this.MaximumSize.Height;
}
else if (frmHeight < this.MinimumSize.Height)
{
frmHeight = this.MinimumSize.Height;
}
設置TextBox.Scrollbars
物業既可作爲默認允許,是不是真的很好,也想在屏幕上滾動禁用。 不幸的是,Graphics.MeasureString
真的沒有幫助,因爲它不考慮WordWrap
的行爲。
那麼,我怎樣才能確定TextBox.Text
是否離開可見區域使一個垂直滾動條需要?
似乎這一點工作必須手動完成... – 2010-07-14 07:17:20