DateTimePickerCell の書式設定済みの値を取得する方法
対象製品
MultiRow for Windows Forms 5.0J
詳細
DateTimePickerCell は DateTimePickerCell.Style.Format プロパティをサポートしていないため、DateTimePickerCell.FormattedValue プロパティは常に DateTimePickerCell.Value プロパティの値の文字列を返します。(例:9998/12/31 00:00:00)
DateTimePickerCell の値を書式付で取得するには、Date 型で文字列を書式設定して取得します。
以下はサンプルプロジェクトから抜粋し、結果の出力先を変更したものです。
[Visual Basic]
[C#]
次期バージョン MultiRow for Windows Forms 6.0J では、新たに DateTimePickerCell.DisplayText プロパティが提供されています。
DateTimePickerCell の値を書式付で取得するには、Date 型で文字列を書式設定して取得します。
以下はサンプルプロジェクトから抜粋し、結果の出力先を変更したものです。
[Visual Basic]
Imports GrapeCity.Win.MultiRow
Dim result As String = ""
If TypeOf Me.GcMultiRow1.CurrentCell Is DateTimePickerCell Then
Dim dateTimePickerCell As DateTimePickerCell = DirectCast(Me.GcMultiRow1.CurrentCell, DateTimePickerCell)
Dim value As Date = DirectCast(Me.GcMultiRow1.CurrentCell.Value, Date)
Select Case dateTimePickerCell.Format
Case DateTimePickerFormat.Custom
' カスタム書式で取得する
Dim dateTimePickerCellCustomFormat As String = dateTimePickerCell.CustomFormat
result = value.ToString(dateTimePickerCellCustomFormat)
Case DateTimePickerFormat.Long
' 長い日付書式で取得する
result = value.ToLongDateString()
Case DateTimePickerFormat.Short
' 短い日付書式で取得する
result = value.ToShortDateString()
Case DateTimePickerFormat.Time
' 時刻で取得する
result = value.ToLongTimeString()
End Select
Else
result = "DateTimePickerCell ではありません"
End If
Console.WriteLine("書式設定済みの値: {0}", result)
Console.WriteLine("セルの値: {0}", Me.GcMultiRow1.CurrentCell.FormattedValue.ToString())
Dim result As String = ""
If TypeOf Me.GcMultiRow1.CurrentCell Is DateTimePickerCell Then
Dim dateTimePickerCell As DateTimePickerCell = DirectCast(Me.GcMultiRow1.CurrentCell, DateTimePickerCell)
Dim value As Date = DirectCast(Me.GcMultiRow1.CurrentCell.Value, Date)
Select Case dateTimePickerCell.Format
Case DateTimePickerFormat.Custom
' カスタム書式で取得する
Dim dateTimePickerCellCustomFormat As String = dateTimePickerCell.CustomFormat
result = value.ToString(dateTimePickerCellCustomFormat)
Case DateTimePickerFormat.Long
' 長い日付書式で取得する
result = value.ToLongDateString()
Case DateTimePickerFormat.Short
' 短い日付書式で取得する
result = value.ToShortDateString()
Case DateTimePickerFormat.Time
' 時刻で取得する
result = value.ToLongTimeString()
End Select
Else
result = "DateTimePickerCell ではありません"
End If
Console.WriteLine("書式設定済みの値: {0}", result)
Console.WriteLine("セルの値: {0}", Me.GcMultiRow1.CurrentCell.FormattedValue.ToString())
[C#]
using GrapeCity.Win.MultiRow;
string result = "";
if (this.gcMultiRow1.CurrentCell is DateTimePickerCell)
{
DateTimePickerCell dateTimePickerCell = this.gcMultiRow1.CurrentCell as DateTimePickerCell;
DateTime value = (DateTime)this.gcMultiRow1.CurrentCell.Value;
switch (dateTimePickerCell.Format)
{
case DateTimePickerFormat.Custom:
// カスタム書式で取得する
string dateTimePickerCellCustomFormat = dateTimePickerCell.CustomFormat;
result = value.ToString(dateTimePickerCellCustomFormat);
break;
case DateTimePickerFormat.Long:
// 長い日付書式で取得する
result = value.ToLongDateString();
break;
case DateTimePickerFormat.Short:
// 短い日付書式で取得する
result = value.ToShortDateString();
break;
case DateTimePickerFormat.Time:
// 時刻で取得する
result = value.ToLongTimeString();
break;
default:
break;
}
}
else
{
result = "DateTimePickerCell ではありません";
}
Console.WriteLine("書式設定済みの値: {0}", result);
Console.WriteLine("セルの値: {0}", this.gcMultiRow1.CurrentCell.FormattedValue.ToString());
string result = "";
if (this.gcMultiRow1.CurrentCell is DateTimePickerCell)
{
DateTimePickerCell dateTimePickerCell = this.gcMultiRow1.CurrentCell as DateTimePickerCell;
DateTime value = (DateTime)this.gcMultiRow1.CurrentCell.Value;
switch (dateTimePickerCell.Format)
{
case DateTimePickerFormat.Custom:
// カスタム書式で取得する
string dateTimePickerCellCustomFormat = dateTimePickerCell.CustomFormat;
result = value.ToString(dateTimePickerCellCustomFormat);
break;
case DateTimePickerFormat.Long:
// 長い日付書式で取得する
result = value.ToLongDateString();
break;
case DateTimePickerFormat.Short:
// 短い日付書式で取得する
result = value.ToShortDateString();
break;
case DateTimePickerFormat.Time:
// 時刻で取得する
result = value.ToLongTimeString();
break;
default:
break;
}
}
else
{
result = "DateTimePickerCell ではありません";
}
Console.WriteLine("書式設定済みの値: {0}", result);
Console.WriteLine("セルの値: {0}", this.gcMultiRow1.CurrentCell.FormattedValue.ToString());
次期バージョン MultiRow for Windows Forms 6.0J では、新たに DateTimePickerCell.DisplayText プロパティが提供されています。
関連情報
この文書は、以前は次のFAQ IDで公開されていました : 11357