私の最初に考えたのは、それはこのようなものになるだろうだった。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()関数は、テキストが折り返されていても、償却線のインデックスを返します。
int lineCount = textBox1.GetLineFromCharIndex(int.MaxValue) + 1;
int lineHeightPixel = TextRenderer.MeasureText("X", textBox1.Font).Height;
winform wpf?何?あなたは私たちがあなたの隣に立っていないことを知っていますよね? – gdoron
可能な複製[テキストが収まらない場合にのみ、System.Windows.Forms.TextBoxのスクロールバーを表示するにはどうすればよいですか?](http://stackoverflow.com/questions/73110/how-can-i-show- scrollbars-on-a-system-windows-forms-text-box-only-text-d) –
ハンス・パッセンジャー、おそらく一部ですが、これ以外にもすべての回答がありますhttp://stackoverflow.com/a/4147348/1205147は間違っていて、b8adamsonの答えはかなり長くて大胆に見えます。私はより良い、より良い回避策があると思います:) – Mike