PowerTools CalendarGrid for Windows Forms 1.0J
複数行テキスト(CalendarGcTextBoxCellType)

CalendarGcTextBoxCellTypeで複数行テキストを有効にするには、GcTextBoxCell.Style.MultiLineプロパティをTrueに設定します。
ここではマルチラインモードの機能について解説します。


ワードラップ

WrapModeプロパティを使用すると、セルの幅よりも長いの行の折り返し方法を設定することができます。
WrapModeプロパティには次の3つのモードがあります。

WrapModeの値 説明

NoWrap

改行しません。

WordWrap

単語単位で改行します。

CharWrap

文字単位で改行します。

WrapModeをNoWrapに設定した場合、自動的に行が折り返されることはありません。標準のTextBoxでWordWrapプロパティがFalseに設定された場合と同じ動作です。
WordWrap に設定した場合は、単語単位で改行が行われます。標準のTextBoxでWordWrap プロパティをTrueに設定した場合と同じ動作です。
CharWrapに設定すると文字単位で改行が行われます。行のスペースがなくなった位置で折り返されるため、意図しない位置での改行を防ぎます。半角・全角の文字が混在した日本語の文章を表示するのに適した改行方法といえます。


行間のスペース

LineSpaceプロパティを使用すると、行間の幅(スペース)を設定することができます。行間はピクセル単位で設定します。


罫線の表示

GridLineプロパティが参照するLine構造体を使用して行間に罫線を表示することができます。

(図)罫線を表示したマルチランテキスト

Line構造体の次の2つのプロパティで罫線の線種と色を設定することができます。

以下は罫線を表示したマルチラインテキストの例です。

Imports InputManCell = GrapeCity.Win.CalendarGrid.InputMan

Dim today As DateTime = DateTime.Today

Dim GcTextBoxCellType As New InputManCell.CalendarGcTextBoxCellType()
GcTextBoxCellType.Multiline = True
' 文字単位で改行する
GcTextBoxCellType.WrapMode = InputManCell.CalendarGridWrapMode.CharWrap
' 点線で赤の罫線を表示する
GcTextBoxCellType.GridLine.Style = InputManCell.LineStyle.Dashed
GcTextBoxCellType.GridLine.Color = Color.Red

GcCalendarGrid1.Content(today).Rows(1).Cells(0).CellType = GcTextBoxCellType
GcCalendarGrid1.ScrollIntoView(today)
using InputManCell = GrapeCity.Win.CalendarGrid.InputMan;

var today = DateTime.Today;
var gcTextBoxCellType = new InputManCell.CalendarGcTextBoxCellType();
gcTextBoxCellType.Multiline = true;
// 文字単位で改行する
gcTextBoxCellType.WrapMode = InputManCell.CalendarGridWrapMode.CharWrap;
// 点線で赤の罫線を表示する
gcTextBoxCellType.GridLine.Style = InputManCell.LineStyle.Dashed;
gcTextBoxCellType.GridLine.Color = Color.Red;

gcCalendarGrid1.Content[today].Rows[1].Cells[0].CellType = gcTextBoxCellType;
gcCalendarGrid1.ScrollIntoView(today);


入力行数の制限

MaxLineCountプロパティを使用して、セルに入力可能な行数を制限することができます。
MaxLineCountプロパティに0以外の値を設定した場合、設定した値よりも後の行には入力ができなくなります。値が0の場合は行数に制限はありません。

行数を制限する際には、GcTextBox.CountWrappedLineプロパティで、ワードラップによる自動改行を考慮するかどうかを設定できます。このプロパティはセルの編集時のみ有効です。
このプロパティがTrueに設定された場合は、ワードラップによる自動改行は1行としてカウントされます。つまり、表示上の行数により入力が制限されるようになります。一方、CountWrapedLineプロパティがFalseに設定されている場合は、改行コードによる改行のみカウントされます。


行数の取得

セルに入力されているテキストの行数を取得するには、GcTextBox.GetLineCountメソッドを使用します。このメソッドはセルの編集時のみ有効です。
このメソッドで取得できるのは、セルの表示上の行数です。つまり、ワードラップによる自動改行も1行としてみなされます。
改行コードよって改行された行数を取得するには、Linesプロパティを利用できます。


参照

 

 


© 2014 GrapeCity inc. All rights reserved.