PowerTools InputMan for Windows Forms 8.0J > InputManの使い方 > テキストコントロール > 複数行テキスト |
テキストコントロールのMultiline プロパティをTrueに設定すると、テキストコントロールには複数行の入力が可能なマルチラインモードになります。ここではマルチラインモードの機能について解説します。
WrapMode プロパティを使用すると、コントロールの幅よりも長いの行の折り返し方法を設定することができます。
WrapMode プロパティはWrapMode 列挙体を使用して次の値が設定できます。
WrapModeの値 | 説明 |
---|---|
NoWrap | 改行しません。 |
WordWrap | 単語単位で改行します。 |
CharWrap | 文字単位で改行します。 |
WrapMode を NoWrap に設定した場合、自動的に行が折り返されることはありません。標準のTextBoxでWordWrap プロパティがFalseに設定された場合と同じ動作です。
WordWrap に設定した場合は、単語単位で改行が行われます。標準のTextBoxでWordWrap プロパティをTrueに設定した場合と同じ動作です。
CharWrapに設定すると文字単位で改行が行われます。行のスペースがなくなった位置で折り返されるため、意図しない位置での改行を防ぎます。半角・全角の文字が混在した日本語の文章を表示するのに適した改行方法といえます。
LineSpace プロパティを使用すると、行間の幅(スペース)を設定することができます。行間はピクセル単位で設定します。
(図)行間スペース 0 (左)と 6(右)の複数行テキスト
GridLine プロパティが参照するLine 構造体を使用して行間に罫線を表示することができます。
(図)罫線を表示した複数行テキスト
Line構造体の次の2つのプロパティで罫線の線種と色を設定することができます。
以下は罫線を表示した複数行テキストの例です。
GcTextBox1.Multiline = True ' 文字単位で改行するよう設定します。 GcTextBox1.WrapMode = GrapeCity.Win.Editors.WrapMode.CharWrap ' 点線で赤の罫線を表示するよう設定します。 GcTextBox1.GridLine.Style = GrapeCity.Win.Editors.LineStyle.Dashed GcTextBox1.GridLine.Color = Color.Red
gcTextBox1.Multiline = true; // 文字単位で改行するよう設定します。 gcTextBox1.WrapMode = GrapeCity.Win.Editors.WrapMode.CharWrap; // 点線で赤の罫線を表示するよう設定します。 gcTextBox1.GridLine.Style = GrapeCity.Win.Editors.LineStyle.Dashed; gcTextBox1.GridLine.Color = Color.Red;
MaxLineCount プロパティを使用して、コントロールに入力可能な行数を制限することができます。
MaxLineCount プロパティに 0 以外の値を設定した場合、設定した値よりも後の行には入力ができなくなります。値が 0 の場合は行数に制限はありません。
行数を制限する際には、CountWrappedLine プロパティで、ワードラップによる自動改行を考慮するかどうかを設定できます。このプロパティがTrueに設定された場合は、ワードラップによる自動改行は1行としてカウントされます。つまり、表示上の行数により入力が制限されるようになります。一方、CountWrapedLine プロパティがFalseに設定されている場合は、改行コードによる改行のみカウントされます。
コントロールに入力されているテキストの行数を取得するには、GetLineCount メソッドを使用します。このメソッドで取得できるのは、コントロールの表示上の行数です。つまり、ワードラップによる自動改行も1行としてみなされます。
改行コードよって改行された行数を取得するには、Lines プロパティを利用できます。
複数行テキストでは、スクロールバーを表示することができます。表示するスクロールバーの種類は、ScrollBars プロパティで設定します。
テキストコントロールでは、さらにスクロールバーの表示方法を指定できます。ScrollBarMode プロパティをScrollBarMode.Fixedに設定すると、ScrollBars プロパティで指定したスクロールバーが常に表示されます。また、ScrollBarMode.Automaticに設定すると、テキストが表示領域を超えた場合にのみスクロールバーを表示します。