PowerTools SPREAD for Windows Forms 8.0J > 開発者ガイド > セル型 > InputManセル > GcDateTime型セル > 書式の設定(GcDateTime型セル) |
GcDateTime型セルの書式には、入力用と表示用の2つがあり、それぞれ入力フィールドと表示フィールドを使って書式を設定します。 入力書式は、セルが編集状態のときの書式で、表示書式はセルが非編集状態のときの書式です。 入力フィールドを設定するには、Fields プロパティが参照するDateTimeFieldCollectionInfo クラスを使用します。DateFieldCollectionInfo は、コントロール内の各フィールドを表すDateFieldのコレクションを保持するクラスです。
一方、表示フィールドを設定するには、DisplayFields プロパティが参照するDateTimeDisplayFieldCollectionInfo クラスを使用します。DateDisplayFieldCollectionInfo は、コントロール内の各フィールドを表すDateDisplayFieldのコレクションを保持するクラスです。
GcDateTime型セルの書式を設定するには、それぞれのコレクションのAdd メソッドもしくはAddRange メソッドを使用して直接フィールドオブジェクトを追加する方法と、AddRange メソッドのオーバーライドの1つを使用して、キーワード文字列によりフィールドを自動生成する方法があります。
コレクションのインデックスがわかっている場合は、インデックスを使ってフィールドを取得することができます。
次のサンプル コードは、インデックスを使ってフィールドを取得する例です。ここではGcDateTime型セルの3番目のフィールドを取得する例です。
C# |
コードのコピー
|
---|---|
GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType gdcell = new GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType();
GrapeCity.Win.Spread.InputMan.CellType.Fields.DateFieldInfo myField = gdcell.Fields[2];
|
Visual Basic |
コードのコピー
|
---|---|
Dim gdcell = New GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType() Dim MyField As GrapeCity.Win.Spread.InputMan.CellType.Fields.DateFieldInfo = gdcell.Fields(2) |
また、インデックスを使わず、設定したキー(文字列)を使って特定のフィールドにアクセスすることもできます。キーは、各フィールドのName プロパティにキーとして文字列を設定します。
次のサンプル コードは、キーを使ってフィールドを取得する例です。ここではGcDateTime型セルの特定のフィールドのName プロパティにあらかじめ"Key1"という文字列が設定されていることを前提にしています。
C# |
コードのコピー
|
---|---|
GrapeCity.Win.Spread.InputMan.CellType.Fields.DateFieldInfo myField = gdcell.Fields["Key1"];
|
Visual Basic |
コードのコピー
|
---|---|
Dim MyField As GrapeCity.Win.Spread.InputMan.CellType.Fields.DateFieldInfo = gdcell.Fields("Key1") |
入力時の書式を設定する入力フィールドには、次の11種類のフィールドが提供されており、これらのフィールドオブジェクトを使って書式を設定することができます。
フィールド(クラス) | 説明 |
---|---|
DateAmPmFieldInfo | 午前/午後入力フィールド |
DateDayFieldInfo | 日入力フィールド |
DateEraFieldInfo | 年号入力フィールド |
DateEraYearFieldInfo | 和暦入力フィールド |
DateHourFieldInfo | 時間入力フィールド |
DateLiteralFieldInfo | リテラル文字フィールド |
DateMinuteFieldInfo | 分入力フィールド |
DateMonthFieldInfo | 月入力フィールド |
DateSecondFieldInfo | 秒入力フィールド |
DateShortHourFieldInfo | 12時間制時刻入力フィールド |
DateYearFieldInfo | 年入力フィールド |
また、表示フィールドでは、次の14種類のフィールドが提供されています。
フィールド(クラス) | 説明 |
---|---|
DateADDisplayFieldInfo | 西暦表示フィールド |
DateAmPmDisplayFieldInfo | 午前/午後表示フィールド |
DateDayDisplayFieldInfo | 日表示フィールド |
DateEraDisplayFieldInfo | 年号表示フィールド |
DateEraYearDisplayFieldInfo | 和暦表示フィールド |
DateHourDisplayFieldInfo | 時刻表示フィールド |
DateLiteralDisplayFieldInfo | リテラル文字表示フィールド |
DateMinuteDisplayFieldInfo | 分表示フィールド |
DateMonthDisplayFieldInfo | 月表示フィールド |
DateSecondDisplayFieldInfo | 秒表示フィールド |
DateShortHourDisplayFieldInfo | 12時間制時刻表示フィールド |
DateSystemFormatDisplayFieldInfo | システム書式表示フィールド |
DateWeekdayDisplayFieldInfo | 曜日表示フィールド |
DateYearDisplayFieldInfo | 年表示フィールド |
これらのフィールドオブジェクトをフィールドのコレクションを表すDateTimeFieldCollectionInfoまたはDateTimeDisplayFieldCollectionInfoオブジェクトに追加するには、DateTimeFieldCollectionInfoおよびDateTimeDisplayFieldCollectionInfoクラスのAddメソッドまたは、AddRangeメソッドを使用します。
次のサンプルコードは、以下の図のようにGcDateTime型セルに書式を設定する例です。 DateFieldCollectionInfoクラスのAddRangeメソッドを使用してDateFieldCollectionInfoオブジェクトにフィールドを追加しています。
C# |
コードのコピー
|
---|---|
using InputManCell = GrapeCity.Win.Spread.InputMan.CellType; GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType gdcell = new GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType(); // フィールドをクリアします。 gdcell.Fields.Clear(); gdcell.DisplayFields.Clear(); // 入力フィールドのオブジェクトを作成します。 InputManCell.Fields.DateYearFieldInfo dateYearField1 = new InputManCell.Fields.DateYearFieldInfo(InputManCell.YearDigitType.FourDigitYear); InputManCell.Fields.DateLiteralFieldInfo dateLiteralField1 = new InputManCell.Fields.DateLiteralFieldInfo("/"); InputManCell.Fields.DateMonthFieldInfo dateMonthField1 = new InputManCell.Fields.DateMonthFieldInfo(InputManCell.MonthPattern.Number); InputManCell.Fields.DateLiteralFieldInfo dateLiteralField2 = new InputManCell.Fields.DateLiteralFieldInfo("/"); InputManCell.Fields.DateDayFieldInfo dateDayField1 = new InputManCell.Fields.DateDayFieldInfo(); // フィールドをコレクションに追加してコントロールに入力書式を設定します。 gdcell.Fields.AddRange(new InputManCell.Fields.DateFieldInfo[] { dateYearField1, dateLiteralField1, dateMonthField1, dateLiteralField2, dateDayField1 }); // 表示フィールドのオブジェクトを作成します。 InputManCell.Fields.DateYearDisplayFieldInfo dateYearDisplayDield1 = new InputManCell.Fields.DateYearDisplayFieldInfo(false); InputManCell.Fields.DateLiteralDisplayFieldInfo dateLiteralDisplayField1 = new InputManCell.Fields.DateLiteralDisplayFieldInfo("年"); InputManCell.Fields.DateMonthDisplayFieldInfo dateMonthDisplayField1 = new InputManCell.Fields.DateMonthDisplayFieldInfo(false); InputManCell.Fields.DateLiteralDisplayFieldInfo dateLiteralDisplayField2 = new InputManCell.Fields.DateLiteralDisplayFieldInfo("月"); InputManCell.Fields.DateDayDisplayFieldInfo dateDayDisplayField1 = new InputManCell.Fields.DateDayDisplayFieldInfo(false); InputManCell.Fields.DateLiteralDisplayFieldInfo dateLiteralDisplayField3 = new InputManCell.Fields.DateLiteralDisplayFieldInfo("日"); // フィールドをコレクションに追加してコントロールに表示書式を設定します。 gdcell.DisplayFields.AddRange(new InputManCell.Fields.DateDisplayFieldInfo[] { dateYearDisplayDield1, dateLiteralDisplayField1, dateMonthDisplayField1, dateLiteralDisplayField2, dateDayDisplayField1 , dateLiteralDisplayField3 }); fpSpread1.ActiveSheet.Cells[0, 0].CellType = gdcell; |
Visual Basic |
コードのコピー
|
---|---|
Imports InputManCell = GrapeCity.Win.Spread.InputMan.CellType Dim gdcell = New GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType() ' フィールドをクリアします。 gdcell.Fields.Clear() gdcell.DisplayFields.Clear() ' 入力フィールドのオブジェクトを作成します。 Dim dateYearField1 As New InputManCell.Fields.DateYearFieldInfo(InputManCell.YearDigitType.FourDigitYear) Dim dateLiteralField1 As New InputManCell.Fields.DateLiteralFieldInfo("/") Dim dateMonthField1 As New InputManCell.Fields.DateMonthFieldInfo(InputManCell.MonthPattern.Number) Dim dateLiteralField2 As New InputManCell.Fields.DateLiteralFieldInfo("/") Dim dateDayField1 As New InputManCell.Fields.DateDayFieldInfo() ' フィールドをコレクションに追加してコントロールに入力書式を設定します。 gdcell.Fields.AddRange(New InputManCell.Fields.DateFieldInfo() { _ dateYearField1, dateLiteralField1, dateMonthField1, _ dateLiteralField2, dateDayField1}) ' 表示フィールドのオブジェクトを作成します。 Dim dateYearDisplayDield1 As New InputManCell.Fields.DateYearDisplayFieldInfo(False) Dim dateLiteralDisplayField1 As New InputManCell.Fields.DateLiteralDisplayFieldInfo("年") Dim dateMonthDisplayField1 As New InputManCell.Fields.DateMonthDisplayFieldInfo(False) Dim dateLiteralDisplayField2 As New InputManCell.Fields.DateLiteralDisplayFieldInfo("月") Dim dateDayDisplayField1 As New InputManCell.Fields.DateDayDisplayFieldInfo(False) Dim dateLiteralDisplayField3 As New InputManCell.Fields.DateLiteralDisplayFieldInfo("日") ' フィールドをコレクションに追加してコントロールに入力書式を設定します。 gdcell.DisplayFields.AddRange(New InputManCell.Fields.DateDisplayFieldInfo() { _ dateYearDisplayDield1, dateLiteralDisplayField1, dateMonthDisplayField1, _ dateLiteralDisplayField2, dateDayDisplayField1, dateLiteralDisplayField3}) FpSpread1.ActiveSheet.Cells(0, 0).CellType = gdcell |
GcDateTime型セルでは、キーワードによる書式設定が可能です。
以下のサンプルコードは、キーワードで書式を設定しています。
C# |
コードのコピー
|
---|---|
GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType gdcell = new GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType(); gdcell.Fields.Clear(); gdcell.DisplayFields.Clear(); // キーワードから書式を設定します。 gdcell.Fields.AddRange("yyyy年 MM月 dd日"); gdcell.DisplayFields.AddRange("ggg ee年 MM月 dd日"); fpSpread1.ActiveSheet.Cells[0, 0].CellType = gdcell; |
Visual Basic |
コードのコピー
|
---|---|
Dim gdcell = New GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType() ' キーワードから書式を設定します。 gdcell.Fields.AddRange("yyyy年 MM月 dd日") gdcell.DisplayFields.AddRange("ggg ee年 MM月 dd日") |
使用可能な書式キーワードは以下のとおりです。
キーワード | 説明 |
---|---|
A | 紀元後を表す"A.D.(Anno Domini)"を表示 ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
g | 年号の頭文字をアルファベットで表示(M、T、S、H) |
gg | 年号の頭文字を漢字で表示(明、大、昭、平) |
ggg | 年号の正式名称を漢字で表示(明治、大正、昭和、平成) |
e | 和暦年を2桁で表示(先頭に0を付けない) |
ee | 和暦年を2桁で表示し開始年を元と表示(先頭に0を付ける) |
E | 和暦年を2桁で表示し開始年を元と表示(先頭に0を付けない) (例:平成元年) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
EE |
和暦年を2桁で表示(先頭に0を付ける) (例:平成元年) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
y | 年を2桁で表示(先頭に0を付けない) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
yy | 年を2桁で表示(先頭に0を付ける) |
yyy | 年を4桁で表示(先頭に0を付けない) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
yyyy | 年を4桁で表示(先頭に0を付ける) |
M | 月を2桁の数字で表示(先頭に0を付けない) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
MM | 月を2桁の数字で表示(先頭に0を付ける) |
MMM | 月を省略形で表示 (DateTimeFormatInfo.AbbreviatedMonthNames() で指定された形式) |
MMMM | 月を正式名称で表示 (DateTimeFormatInfo.MonthNames()で指定された形式) |
d | 日を表示(先頭に0を付けない) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
dd | 日を表示(先頭に0を付ける) |
ddd | 曜日を省略形で表示(DateTimeFormatInfo.AbbreviatedDayNames()で指定された形式) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
dddd | 曜日を正式名称で表示(DateTimeFormatInfo.DayNames()で指定された形式) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
\(Chr(92)) | キーワードをリテラル文字として表示 |
t | 12時間制で時刻を表示するときに午前(AMDesignatorプロパティで設定)または午後(PMDesignatorプロパティで設定)を表す文字列の最初の1文字を表示 |
tt | 12時間制で時刻を表示するときに午前(AMDesignatorプロパティで設定)または午後(PMDesignatorプロパティで設定)を表す文字列を表示 |
h | 時を12時間制で表示(先頭に0を付けない) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
hh | 時を12時間制で表示(先頭に0を付ける) |
H | 時を24時間制で表示(先頭に0を付けない) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
HH | 時を24時間制で表示(先頭に0を付ける) |
m | 分を表示(先頭に0を付けない) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
mm | 分を表示(先頭に0を付ける) |
s | 秒を表示(先頭に0を付けない) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
ss | 秒を表示(先頭に0を付ける) |
\(Chr(92)) | キーワードをリテラル文字として表示 |