2014-02-19 19 views
2

在我的一個應用程序中,我需要將文本放置在文本框中,文本框的寬度和高度必須根據文本的長度而改變。所以我用適合文本在VB.net窗口文本框內

TextSize = gr.MeasureString(textcontent, TextFont) 

其中的TextContent是文本的內容和TEXTFONT是字體的類型。(參見this link

但是,如果文本包含大量字符的說,它需要一個形式裏面大約2線(如果文本不適合單行),那麼我需要設置高度。所以我希望文本適合任何給定的文本在文本框內正確適合。另外如果有多行的情況(對於大文本),那麼在第一行結束處和第二行之間不應該有額外的空間。那麼如何做到呢?

回答

2

由於屬性有限,如果使用常規的TextBox控件會更困難。所以我冒昧建議使用RichTextBox控件,而不是因爲它仍然是一個文本框,但具有更多功能...因此嘗試將RichTextBox控件到窗體,並添加以下代碼...

Private Sub RichTextBox1_ContentsResized(sender As Object, e As System.Windows.Forms.ContentsResizedEventArgs) Handles RichTextBox1.ContentsResized 
    RichTextBox1.Height = e.NewRectangle.Height + 12 
End Sub 
1

做這樣的事情...

  1. 根據窗體的大小或如你所願決定文本框的最大寬度(Mx)。
  2. 如你正在做所需的計算串長度L .. TextSize = gr.MeasureString(textcontent, TextFont)
  3. 如果L小於或等於的Mx然後文本框的寬度改變爲L.
  4. 如果L比的Mx然後身高因子大(Hf)= L/Mx。 設置txtBox1.Multiline = true並將txtBox1高度更改爲txtBox1.Height * Hf並設置txtBox1寬度= Mx