DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

DOBON.NET

複数行TextBox(またはRichTextBox)で水平スクロールバーが表示されない問題の解決法

複数行テキストボックスコントロール(MultilineプロパティがTrue)でスクロールバーを表示するには、ScrollBarsプロパティをVertical(垂直スクロールバーのみ表示)、Horizontal(水平スクロールバーのみ表示)、Both(垂直、水平両方のスクロールバーを表示)のいずれかにします。

ところがテキストボックスコントロールのWordWrapプロパティがTrueになっていると、ScrollBarsプロパティがHorizontalまたはBothになっている時でも水平スクロールバーは表示されません。よって、水平スクロールバーを表示させるためには、ScrollBarsプロパティをHorizontalまたはBothにすると同時に、WordWrapプロパティをFalseにしなければなりません。

[VB.NET]
'TextBox1での複数行入力を可能にする
TextBox1.Multiline = True
'垂直、水平両方のスクロールバーを表示
TextBox1.ScrollBars = ScrollBars.Both
'ワードラップを無効にする
TextBox1.WordWrap = False
[C#]
//TextBox1での複数行入力を可能にする
TextBox1.Multiline = true;
//垂直、水平両方のスクロールバーを表示
TextBox1.ScrollBars = ScrollBars.Both;
//ワードラップを無効にする
TextBox1.WordWrap = false;

WordWrapプロパティがTrueになっていると、文字列が自動的に右端で折り返されます。WordWrapプロパティはデフォルトでTrueです。