Я не знаю, сможете ли вы когда-нибудь получить идеальное измерение, но это близко:
private int GetTextHeight(TextBox tBox) {
return TextRenderer.MeasureText(tBox.Text, tBox.Font, tBox.ClientSize,
TextFormatFlags.WordBreak | TextFormatFlags.TextBoxControl).Height;
}
TextBox может быть глупым.Если включен многострочный режим, если вы нажимаете символ, который приводит к переносу слова в слова, нажатие на клавишу backspace не приводит к его «un-word-wrap», если я не изменю размер TextBox.Это было на Win7-64.Я не думаю, элемент управления TextBox всегда делал это.