我首先想到的是它会是这样的:如何获得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