DateTimePickerCell の書式設定済みの値を取得する方法

文書番号 : 26026     文書種別 : 使用方法     最終更新日 : 2009/10/29
文書を印刷する
対象製品
MultiRow for Windows Forms 5.0J
詳細
DateTimePickerCell は DateTimePickerCell.Style.Format プロパティをサポートしていないため、DateTimePickerCell.FormattedValue プロパティは常に DateTimePickerCell.Value プロパティの値の文字列を返します。(例:9998/12/31 00:00:00)
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())

[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());

次期バージョン MultiRow for Windows Forms 6.0J では、新たに DateTimePickerCell.DisplayText プロパティが提供されています。
関連情報

この文書は、以前は次のFAQ IDで公開されていました : 11357