PowerTools InputMan for Windows Forms 8.0J > InputManの使い方 > 日付コントロール > 書式の設定 > フィールドオブジェクトによる書式設定 |
ここでは、フィールドオブジェクトによる書式設定について説明します。
入力時の書式を設定する入力フィールドには、次の6種類のフィールドが提供されており、これらのフィールドオブジェクトを使って書式を設定することができます。
また、表示フィールドでは、次の9種類のフィールドが提供されています。
これらのフィールドオブジェクトをDateFieldCollection または、DateDisplayFieldCollection コレクションにに追加することで 日付の書式を作成します。
日付コントロールには時刻部分に関係したフィールドは追加できません。これらのフィールドは、フィールドコレクションエディタでは使用できないようになっています。また、コードから時刻部分に関係したフィールドを追加した場合には、例外が発生します。 |
日付の書式は、入力および表示用の各フィールドコレクションに、前項で解説したフィールドオブジェクトを組み合わせて作成します。
入力書式を設定するには、Add またはAddRange メソッドを使用して、DateFieldCollection コレクションに入力用フィールドオブジェクトを追加します。表示書式は、Add またはAddRange メソッドを使用して、表示用フィールドオブジェクトをDateDisplayFieldCollection コレクションに追加します。
次のサンプルコードは、日付コントロールに入力および表示書式を設定する例です。
Imports GrapeCity.Win.Editors Imports GrapeCity.Win.Editors.Fields ' フィールドをクリアします。 GcDate1.Fields.Clear() GcDate1.DisplayFields.Clear() ' 入力フィールドのオブジェクトを作成します。 Dim dateYearField1 As New DateYearField(YearDigitType.FourDigitYear) Dim dateLiteralField1 As New DateLiteralField("/") Dim dateMonthField1 As New DateMonthField(MonthPattern.Number) Dim dateLiteralField2 As New DateLiteralField("/") Dim dateDayField1 As New DateDayField() ' フィールドをコレクションに追加してコントロールに入力書式を設定します。 GcDate1.Fields.AddRange(New DateField() { _ dateYearField1, dateLiteralField1, dateMonthField1, _ dateLiteralField2, dateDayField1}) ' 表示フィールドのオブジェクトを作成します。 Dim dateYearDisplayDield1 As New DateYearDisplayField(False) Dim dateLiteralDisplayField1 As New DateLiteralDisplayField("年") Dim dateMonthDisplayField1 As New DateMonthDisplayField(False) Dim dateLiteralDisplayField2 As New DateLiteralDisplayField("月") Dim dateDayDisplayField1 As New DateDayDisplayField(False) Dim dateLiteralDisplayField3 As New DateLiteralDisplayField("日") ' フィールドをコレクションに追加してコントロールに表示書式を設定します。 GcDate1.DisplayFields.AddRange(New DateDisplayField() { _ dateYearDisplayDield1, dateLiteralDisplayField1, dateMonthDisplayField1, _ dateLiteralDisplayField2, dateDayDisplayField1, dateLiteralDisplayField3})
using GrapeCity.Win.Editors; using GrapeCity.Win.Editors.Fields; // フィールドをクリアします。 gcDate1.Fields.Clear(); gcDate1.DisplayFields.Clear(); // 入力フィールドのオブジェクトを作成します。 DateYearField dateYearField1 = new DateYearField(YearDigitType.FourDigitYear); DateLiteralField dateLiteralField1 = new DateLiteralField("/"); DateMonthField dateMonthField1 = new DateMonthField(MonthPattern.Number); DateLiteralField dateLiteralField2 = new DateLiteralField("/"); DateDayField dateDayField1 = new DateDayField(); // フィールドをコレクションに追加してコントロールに入力書式を設定します。 gcDate1.Fields.AddRange(new DateField[] { dateYearField1, dateLiteralField1, dateMonthField1, dateLiteralField2, dateDayField1}); // 表示フィールドのオブジェクトを作成します。 DateYearDisplayField dateYearDisplayDield1 = new DateYearDisplayField(false); DateLiteralDisplayField dateLiteralDisplayField1 = new DateLiteralDisplayField("年"); DateMonthDisplayField dateMonthDisplayField1 = new DateMonthDisplayField(false); DateLiteralDisplayField dateLiteralDisplayField2 = new DateLiteralDisplayField("月"); DateDayDisplayField dateDayDisplayField1 = new DateDayDisplayField(false); DateLiteralDisplayField dateLiteralDisplayField3 = new DateLiteralDisplayField("日"); // フィールドをコレクションに追加してコントロールに表示書式を設定します。 gcDate1.DisplayFields.AddRange(new DateDisplayField[] { dateYearDisplayDield1, dateLiteralDisplayField1, dateMonthDisplayField1, dateLiteralDisplayField2, dateDayDisplayField1, dateLiteralDisplayField3});
(図) 上記サンプルコードを適用したコントロール
フィールドオブジェクトをDateFieldCollection または DateDisplayFieldCollection コレクションから削除するには、Remove メソッドまたは、RemoveAt メソッドを使用します。
次のサンプルコードは、DateFieldCollection コレクションの先頭のフィールドを削除する例です。
' コレクションの先頭のオブジェクトを削除します。
GcDate1.Fields.RemoveAt(0)
// コレクションの先頭のオブジェクトを削除します。
gcDate1.Fields.RemoveAt(0);
デザイン画面ではフィールドオブジェクトを設定できる「入力フィールドの編集」「表示フィールドの編集」エディタから容易な設定が可能です。 このエディタは次のいずれかの方法で起動でき、日付コントロールで設定可能なフィールドを組み合わせて設定します。
入力書式このエディタでは、コレクションにフィールドを追加や編集すると同時に各フィールドのテキストのフォントや色といったスタイルを設定することができます。
(図)フィールド毎に異なったスタイルを設定
ここでは、日付コントロールの入力フィールドに設定可能な6種類のフィールドについて、すべてのフィールドに共通な設定項目と各フィールドに特化した設定項目にわけて解説します。
これらのプロパティは、日付コントロールのすべての入力フィールドオブジェクトに共通な設定項目です。
プロパティ | 説明 |
---|---|
BackColor | フィールド背景色を設定します。 |
Font | フィールドに表示される文字列のフォントを設定します。 |
ForeColor | フィールド前景色を設定します。 |
Margin | フィールド領域の外枠の距離を設定します。 コントロールの境界線からの距離や、他のフィールドとの間隔を設定する際に使用します。 |
Padding | フィールド領域からテキストの表示エリアまでの距離を設定します。 |
リテラル文字フィールド(DateLiteralField クラス)は、コントロールに表示するリテラル文字を設定します。
プロパティ | 説明 |
---|---|
Text | リテラル文字として表示する文字列を設定します。 |
年号入力フィールド (DateEraField クラス)は和暦表示時の年号を入力するフィールドです。
プロパティ | 説明 |
---|---|
AutoDropDown | フィールドがキャレットが移動されたときに自動的にドロップダウンリストを表示するかどうか指定します。 |
DropDownEnabled | フィールドに設定可能な値をドロップダウンリストで表示できるようにするかどうか設定します。 |
Pattern | 年号を表す文字列を設定します。 (EraPattern 型) EraPattern.EraName のときは、年号を正式名称で表示、EraPattern.AbbreviatedEraName のときは、年号の頭文字を表示、EraPattern.Symbol のときは、年号を記号で表示します。 |
PromptChar | 値が入力されていないときに表示するプロンプト文字を設定します。 |
SpinIncrement | スピン機能により日付を増減する値を設定します。 |
和暦入力フィールド (DateEraYearField クラス)は、和暦年を入力するフィールドです。
プロパティ | 説明 |
---|---|
PromptChar | 値が入力されていないときに表示するプロンプト文字を設定します。 |
SpinIncrement | スピン機能により日付を増減する値を設定します。 |
年入力フィールド (DateYearField クラス)は、西暦の年を入力するフィールドです。
プロパティ | 説明 |
---|---|
PromptChar | 値が入力されていないときに表示するプロンプト文字を設定します。 |
SpinIncrement | スピン機能により日付を増減する値を設定します。 |
TwoDigitYearMax | 西暦2桁入力時の有効期間(100年間)の最後の年を取得または設定します。 |
YearDigit | 西暦の表示桁数を設定します。 (YearDigitType 型) YearDigitType.FourDigitYear のときは、年を4桁で表示します。YearDigitType.TwoDigitYear のときは、年を2桁で表示します。 |
月入力フィールド (DateMonthField クラス)は、月を入力するフィールドです。
プロパティ | 説明 |
---|---|
AutoDropDown | フィールドがキャレットが移動されたときに自動的にドロップダウンリストを表示するかどうか指定します。 |
DropDownEnabled | フィールドに設定可能な値をドロップダウンリストで表示できるようにするかどうか設定します。 |
Pattern | 月を表す文字列を設定します。 (MonthPattern 型) MonthPattern.MonthName のときは、月を正式名称で表示します。(DateTimeFormatInfo.MonthNames()で指定された形式) MonthPattern.AbbreviatedMonthName のときは、月を月を省略形で表示します。 (DateTimeFormatInfo.AbbreviatedMonthNames() で指定された形式) MonthPattern.Number のときは、月を2桁の数字で表示(先頭に0を付ける)します。 |
PromptChar | 値が入力されていないときに表示するプロンプト文字を設定します。 |
SpinIncrement | スピン機能により日付を増減する値を設定します。 |
日入力フィールド (DateDayField クラス)は、日を入力するフィールドです。
プロパティ | 説明 |
---|---|
PromptChar | 値が入力されていないときに表示するプロンプト文字を設定します。 |
SpinIncrement | スピン機能により日付を増減する値を設定します。 |
ここでは、日付コントロールの表示フィールドに設定可能な9種類のフィールドについて、すべてのフィールドに共通な設定項目と各フィールドに特化した設定項目にわけて解説します。
これらのプロパティは、日付コントロールのすべての表示フィールドオブジェクトに共通な設定項目です。
プロパティ | 説明 |
---|---|
BackColor | フィールド背景色を設定します。 |
Font | フィールドに表示される文字列のフォントを設定します。 |
ForeColor | フィールド前景色を設定します。 |
Margin | フィールド領域の外枠の距離を設定します。 コントロールの境界線からの距離や、他のフィールドとの間隔を設定する際に使用します。 |
Padding | フィールド領域からテキストの表示エリアまでの距離を設定します。 |
リテラル文字表示フィールド (DateLiteralDisplayField クラス)は、コントロールに表示するリテラル文字を設定します。
プロパティ | 説明 |
---|---|
Text | リテラル文字として表示する文字列を設定します。 |
年号表示フィールド (DateEraDisplayField クラス)は、和暦表示時の年号を表示するフィールドです。
プロパティ | 説明 |
---|---|
Pattern | 年号を表す文字列を設定します。 (EraPattern 型) EraPattern.EraName のときは、年号を正式名称で表示、EraPattern.AbbreviatedEraName のときは、年号の頭文字を表示、EraPattern.Symbol のときは、年号を記号で表示します。 |
PromptChar | 値が入力されていないときに表示するプロンプト文字を設定します。 |
和暦表示フィールド (DateEraYearDisplayField クラス)は、和暦年を表示するフィールドです。
プロパティ | 説明 |
---|---|
PromptChar | 値が入力されていないときに表示するプロンプト文字を設定します。 |
ShowLeadingZero | 値が1桁のとき先頭に0をつけるかどうか設定します。 |
ShowTraditionalFirstYear | 開始年を元と表示するかどうか設定します。 |
西暦表示フィールド (DateADDisplayField クラス)は、紀元後を表すA.D.を表示するフィールドです。
プロパティ | 説明 |
---|---|
PromptChar | 値が入力されていないときに表示するプロンプト文字を設定します。 |
年表示フィールド (DateYearDisplayField クラス)は、西暦の年を表示するフィールドです。
プロパティ | 説明 |
---|---|
PromptChar | 値が入力されていないときに表示するプロンプト文字を設定します。 |
ShowLeadingZero | 値が1桁のとき先頭に0をつけるかどうか設定します。 |
YearDigit | 西暦の表示桁数を設定します。 (YearDigitType 型) YearDigitType.FourDigitYear のときは、年を4桁で表示します。YearDigitType.TwoDigitYear のときは、年を2桁で表示します。 |
月表示フィールド (DateMonthDisplayField クラス)は、月を表示するフィールドです。
プロパティ | 説明 |
---|---|
Pattern | 月を表す文字列を設定します。 (MonthPattern 型) MonthPattern.MonthName のときは、月を正式名称で表示します。(DateTimeFormatInfo.MonthNames()で指定された形式) MonthPattern.AbbreviatedMonthName のときは、月を月を省略形で表示します。 (DateTimeFormatInfo.AbbreviatedMonthNames() で指定された形式) MonthPattern.Number のときは、月を2桁の数字で表示(先頭に0を付ける)します。 |
PromptChar | 値が入力されていないときに表示するプロンプト文字を設定します。 |
ShowLeadingZero | 値が1桁のとき先頭に0をつけるかどうか設定します。 |
日表示フィールド (DateDayDisplayField クラス)は、日を表示するフィールドです。
プロパティ | 説明 |
---|---|
PromptChar | 値が入力されていないときに表示するプロンプト文字を設定します。 |
ShowLeadingZero | 値が1桁のとき先頭に0をつけるかどうか設定します。 |
曜日表示フィールド (DateWeekdayDisplayField クラス)は、曜日を表示するフィールドです。
プロパティ | 説明 |
---|---|
Pattern | 曜日を表す文字列を設定します。 (WeekdayPattern 型) MonthPattern.MonthName のときは、曜日を正式名称で表示します。 (DateTimeFormatInfo.DayNames()で指定された形式) MonthPattern.AbbreviatedMonthName のときは、曜日を省略形で表示します。 (DateTimeFormatInfo.AbbreviatedDayNames()で指定された形式) |
PromptChar | 値が入力されていないときに表示するプロンプト文字を設定します。 |
システム書式表示フィールド (DateSystemFormatDisplayField クラス)は、 システムで定義された書式指定子を使用して日付または時刻の書式を設定します。
プロパティ | 説明 |
---|---|
Pattern | 書式を表す書式指定子を設定します。 (String型) 下表の書式指定子を設定することができます。 |
PromptChar | 値が入力されていないときに表示するプロンプト文字を設定します。 |
書式指定子 | 説明 |
---|---|
d | 短い形式の日付 (例:2100/04/01) |
D | 長い形式の日付 (例:2100年4月1日) |
t | 短い形式の時刻 (例:0:00) |
T | 長い形式の時刻 (例:0:00:00) |
f | 長い形式の日付と短い形式の時刻 (例:2100年4月1日 0:00) |
F | 長い形式の日付と長い形式の時刻 (例:2100年4月1日 0:00:00) |
g | 短い形式の日付と短い形式の時刻 (例:2100/04/01 0:00) |
G | 短い形式の日付と長い形式の時刻 (例:2100/04/01 0:00:00) |
Mまたはm | 月日の表示 (例:4月1日) |
Oまたはo | ラウンドトリップ形式 (例:2100-04-01T00:00:00.0000000) |
Rまたはr | RFC1123の形式 (例:Thu, 01 Apr 2100 00:00:00 GMT) |
s | ISO 8601準拠の形式 (例:2100-04-01T00:00:00) |
u | ユニバーサル形式 (例:2100-04-01 00:00:00Z) |
U | 世界協定時刻 (例:2100年3月31日 15:00:00) |
Yまたはy | 年月の表示 (例:2100年4月) |
日付コントロールの時刻値は常に深夜の 12 時 (00:00:00)です。 |