我首先想到的是它會是這樣的:如何獲得TextBox的真實高度?
int height = textbox.lines.length * lineheight;
,但它只是罪狀「\ XD \ n」和線條都可以被包裝。當一切都可見時(文本內部的高度),我可以獲取顯示的行數或文本框的實際高度嗎?
我首先想到的是它會是這樣的:如何獲得TextBox的真實高度?
int height = textbox.lines.length * lineheight;
,但它只是罪狀「\ XD \ n」和線條都可以被包裝。當一切都可見時(文本內部的高度),我可以獲取顯示的行數或文本框的實際高度嗎?
我不知道,如果你將永遠得到完美的測量,但這種靠攏:
private int GetTextHeight(TextBox tBox) {
return TextRenderer.MeasureText(tBox.Text, tBox.Font, tBox.ClientSize,
TextFormatFlags.WordBreak | TextFormatFlags.TextBoxControl).Height;
}
文本框可以是愚蠢的。在多行打開的情況下,如果您按下導致單詞換行的字符,點擊退格不會導致它「不換字」,除非我調整TextBox的大小。這是在Win7-64上。我不認爲 TextBox控件總是這樣做。
函數GetLineFromCharIndex()爲您提供了corrent行索引,即使文本被包裝了。
int lineCount = textBox1.GetLineFromCharIndex(int.MaxValue) + 1;
int lineHeightPixel = TextRenderer.MeasureText("X", textBox1.Font).Height;
winform wpf?什麼?你知道我們不站在你身邊,對吧? – gdoron 2012-02-12 14:18:07
可能重複的[只有當文本不適合時,我如何顯示滾動條在System.Windows.Forms.TextBox?](http://stackoverflow.com/questions/73110/how-can-i-show-滾動條在系統上的窗口形式文本框只有當這個文本d) – 2012-02-12 14:38:10
漢斯帕贊特,也許是部分它,但除了這一個所有的答案http://stackoverflow.com/a/4147348/1205147是錯誤的,b8adamson的回答對我來說看起來很長很大。我希望有一個更好,更好的解決方法:) – Mike 2012-02-12 15:41:36