DataGridViewCellFormattingEventArgsとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > DataGridViewCellFormattingEventArgsの意味・解説 

DataGridViewCellFormattingEventArgs クラス

メモ : このクラスは、.NET Framework version 2.0新しく追加されたものです。

DataGridView の CellFormatting イベントデータ提供します

名前空間: System.Windows.Forms
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)
構文構文

Public Class DataGridViewCellFormattingEventArgs
    Inherits ConvertEventArgs
Dim instance As DataGridViewCellFormattingEventArgs
public class DataGridViewCellFormattingEventArgs
 : ConvertEventArgs
public ref class DataGridViewCellFormattingEventArgs
 : public ConvertEventArgs
public class DataGridViewCellFormattingEventArgs
 extends ConvertEventArgs
public class DataGridViewCellFormattingEventArgs
 extends ConvertEventArgs
解説解説

CellFormatting イベント処理することにより、セル値を表示適した書式変換する手順カスタマイズしたり、セルの状態や値に応じてセル外観カスタマイズしたりできます

CellFormatting イベントセル描画されるたびに発生するため、このイベントの処理に時間かけないようにする必要があります。このイベントは、セルの FormattedValue が取得されたときや、セルの GetFormattedValue メソッド呼び出されたときにも発生します

CellFormatting イベント処理すると、ConvertEventArgs.Value プロパティセル値に初期化されますセル値から表示値へのカスタム変換を行う場合は、ConvertEventArgs.Value プロパティ変換後の値に設定して新しい値がセルの FormattedValueType プロパティによって指定された型になるようにします。値の書式指定を行う必要がないことを示すには、DataGridViewCellFormattingEventArgs.FormattingApplied プロパティtrue設定します

イベント ハンドラ終了したときに、ConvertEventArgs.Valuenull 参照 (Visual Basic では Nothing) であるか適切な型でない場合、または DataGridViewCellFormattingEventArgs.FormattingApplied プロパティfalse場合Value は、セルの InheritedStyle プロパティ基づいて初期化される DataGridViewCellFormattingEventArgs.CellStyle プロパティ返すセル スタイルの、Format、NullValue、DataSourceNullValue、および FormatProvider の各プロパティ基づいて書式指定されます。

DataGridViewCellFormattingEventArgs.FormattingApplied プロパティの値に関係なく、DataGridViewCellFormattingEventArgs.CellStyle プロパティによって返されるオブジェクト表示プロパティ使用してセル描画されます。

CellFormatting イベント使用したカスタム書式指定詳細については、「方法 : Windows フォーム DataGridView コントロールデータ書式設定カスタマイズする」を参照してください

このイベントの処理に伴うパフォーマンスの低下防ぐにはセル直接アクセスせずに、イベント ハンドラパラメータ通じてセルアクセスます。

書式指定されユーザー固有の値を実際セル値に変換する手順カスタマイズするには、CellParsing イベント処理します

イベント処理詳細については、「イベント利用」を参照してください

使用例使用例

CellFormatting処理する方法次のコード例示します

Private Sub dataGridView1_CellFormatting(ByVal
 sender As Object, _
    ByVal e As DataGridViewCellFormattingEventArgs)
 _
    Handles dataGridView1.CellFormatting
    ' If the column is the Artist column, check the
    ' value.
    If Me.dataGridView1.Columns(e.ColumnIndex).Name
 _
        = "Artist" Then
        If e.Value IsNot Nothing Then

            ' Check for the string "pink" in the cell.
            Dim stringValue As String
 = _
            CType(e.Value, String)
            stringValue = stringValue.ToLower()
            If ((stringValue.IndexOf("pink")
 > -1)) Then
                e.CellStyle.BackColor = Color.Pink
            End If

        End If
    ElseIf Me.dataGridView1.Columns(e.ColumnIndex).Name
 _
        = "Release Date" Then
        ShortFormDateFormat(e)
    End If
End Sub

'Even though the date internaly stores the year as YYYY, using formatting,
 the
'UI can have the format in YY.  
Private Shared Sub ShortFormDateFormat(ByVal
 formatting As DataGridViewCellFormattingEventArgs)
    If formatting.Value IsNot Nothing Then
        Try
            Dim dateString As System.Text.StringBuilder
 = New System.Text.StringBuilder()
            Dim theDate As Date
 = DateTime.Parse(formatting.Value.ToString())

            dateString.Append(theDate.Month)
            dateString.Append("/")
            dateString.Append(theDate.Day)
            dateString.Append("/")
            dateString.Append(theDate.Year.ToString().Substring(2))
            formatting.Value = dateString.ToString()
            formatting.FormattingApplied = True
        Catch notInDateFormat As FormatException
            ' Set to false in case there are other handlers interested
 trying to
            ' format this DataGridViewCellFormattingEventArgs instance.
            formatting.FormattingApplied = False
        End Try
    End If
End Sub
private void dataGridView1_CellFormatting(object
 sender, DataGridViewCellFormattingEventArgs e)
{
    // If the column is the Artist column, check the
    // value.
    if (this.dataGridView1.Columns[e.ColumnIndex].Name
 == "Artist")
    {
        if (e.Value != null)
        {
            // Check for the string "pink" in the cell.
            string stringValue = (string)e.Value;
            stringValue = stringValue.ToLower();
            if ((stringValue.IndexOf("pink") > -1))
            {
                e.CellStyle.BackColor = Color.Pink;
            }

        }
    }
    else if (this.dataGridView1.Columns[e.ColumnIndex].Name
 == "Release Date")
    {
        ShortFormDateFormat(e);
    }
}

//Even though the date internaly stores the year as YYYY, using formatting,
 the
//UI can have the format in YY.  
private static void ShortFormDateFormat(DataGridViewCellFormattingEventArgs
 formatting)
{
    if (formatting.Value != null)
    {
        try
        {
            System.Text.StringBuilder dateString = new System.Text.StringBuilder();
            DateTime theDate = DateTime.Parse(formatting.Value.ToString());

            dateString.Append(theDate.Month);
            dateString.Append("/");
            dateString.Append(theDate.Day);
            dateString.Append("/");
            dateString.Append(theDate.Year.ToString().Substring(2));
            formatting.Value = dateString.ToString();
            formatting.FormattingApplied = true;
        }
        catch (FormatException)
        {
            // Set to false in case there are other handlers interested
 trying to
            // format this DataGridViewCellFormattingEventArgs instance.
            formatting.FormattingApplied = false;
        }
    }
}
void dataGridView1_CellFormatting( Object^ /*sender*/, DataGridViewCellFormattingEventArgs^
 e )
{
   // If the column is the Artist column, check the
   // value.
   if ( this->dataGridView1->Columns[
 e->ColumnIndex ]->Name->Equals( "Artist" ) )
   {
      if ( e->Value != nullptr )
      {
         // Check for the string "pink" in the cell.
         String^ stringValue = dynamic_cast<String^>(e->Value);
         stringValue = stringValue->ToLower();
         if ( (stringValue->IndexOf( "pink" ) >
 -1) )
         {
            DataGridViewCellStyle^ pinkStyle = gcnew DataGridViewCellStyle;

            //Change the style of the cell.
            pinkStyle->BackColor = Color::Pink;
            pinkStyle->ForeColor = Color::Black;
            pinkStyle->Font = gcnew System::Drawing::Font( "Times New Roman",8,FontStyle::Bold
 );
            e->CellStyle = pinkStyle;
         }
         
      }
   }
   else
   if ( this->dataGridView1->Columns[
 e->ColumnIndex ]->Name->Equals( "Release Date" ) )
   {
      ShortFormDateFormat( e );
   }
}


//Even though the date internaly stores the year as YYYY, using formatting,
 the
//UI can have the format in YY.  
void ShortFormDateFormat( DataGridViewCellFormattingEventArgs^
 formatting )
{
   if ( formatting->Value != nullptr )
   {
      try
      {
         System::Text::StringBuilder^ dateString = gcnew System::Text::StringBuilder;
         DateTime theDate = DateTime::Parse( formatting->Value->ToString()
 );
         dateString->Append( theDate.Month );
         dateString->Append( "/" );
         dateString->Append( theDate.Day );
         dateString->Append( "/" );
         dateString->Append( theDate.Year.ToString()->Substring( 2 ) );
         formatting->Value = dateString->ToString();
         formatting->FormattingApplied = true;
      }
      catch ( Exception^ /*notInDateFormat*/ ) 
      {
         // Set to false in case there are other handlers interested
 trying to
         // format this DataGridViewCellFormattingEventArgs instance.
         formatting->FormattingApplied = false;
      }

   }
}
継承階層継承階層
System.Object
   System.EventArgs
     System.Windows.Forms.ConvertEventArgs
      System.Windows.Forms.DataGridViewCellFormattingEventArgs
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DataGridViewCellFormattingEventArgs メンバ
System.Windows.Forms 名前空間
DataGridView クラス
DataGridView.CellFormatting イベント
DataGridView.CellParsing イベント
DataGridView.DefaultCellStyle プロパティ
DataGridView.OnCellFormatting
DataGridViewCellStyle
DataGridViewCellStyle.Format
DataGridViewCellStyle.FormatProvider
DataGridViewCellStyle.NullValue
DataGridViewCellStyle.DataSourceNullValue
DataGridViewCell.InheritedStyle プロパティ
DataGridViewCell.Value プロパティ
DataGridViewCell.FormattedValue プロパティ
DataGridViewCell.FormattedValueType プロパティ
DataGridViewCell.GetFormattedValue
DataGridViewCellFormattingEventHandler
FormattingApplied
CellStyle
ConvertEventArgs.Value プロパティ
その他の技術情報
Windows フォーム DataGridView コントロールでのセルスタイル
方法 : Windows フォーム DataGridView コントロールデータ書式設定カスタマイズする
イベント利用

DataGridViewCellFormattingEventArgs コンストラクタ

メモ : このコンストラクタは、.NET Framework version 2.0新しく追加されたものです。

DataGridViewCellFormattingEventArgs クラス新しインスタンス初期化します。

名前空間: System.Windows.Forms
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)
構文構文

Public Sub New ( _
    columnIndex As Integer, _
    rowIndex As Integer, _
    value As Object, _
    desiredType As Type, _
    cellStyle As DataGridViewCellStyle _
)
Dim columnIndex As Integer
Dim rowIndex As Integer
Dim value As Object
Dim desiredType As Type
Dim cellStyle As DataGridViewCellStyle

Dim instance As New DataGridViewCellFormattingEventArgs(columnIndex,
 rowIndex, value, desiredType, cellStyle)
public DataGridViewCellFormattingEventArgs (
    int columnIndex,
    int rowIndex,
    Object value,
    Type desiredType,
    DataGridViewCellStyle cellStyle
)
public:
DataGridViewCellFormattingEventArgs (
    int columnIndex, 
    int rowIndex, 
    Object^ value, 
    Type^ desiredType, 
    DataGridViewCellStyle^ cellStyle
)
public DataGridViewCellFormattingEventArgs (
    int columnIndex, 
    int rowIndex, 
    Object value, 
    Type desiredType, 
    DataGridViewCellStyle cellStyle
)
public function DataGridViewCellFormattingEventArgs
 (
    columnIndex : int, 
    rowIndex : int, 
    value : Object, 
    desiredType : Type, 
    cellStyle : DataGridViewCellStyle
)

パラメータ

columnIndex

イベント発生したセルの列インデックス

rowIndex

イベント発生したセルの行インデックス

value

セル内容

desiredType

変換後の value の型。

cellStyle

イベント発生したセルスタイル

例外例外
例外種類条件

ArgumentOutOfRangeException

columnIndex が -1 未満です。

または

rowIndex が -1 未満です。

解説解説

desiredType パラメータvalue パラメータ変換後の型を表しセルの FormattedValueType プロパティには desiredType割り当てられます。たとえば、セル画像名をビットマップとして書式指定する場合value画像名を含む String であり、desiredTypeBitmap 型を表す Type です。

CellFormatting イベントハンドラで、Value プロパティセル表示可能な型に設定されない場合セル内容は、Format、NullValue、および FormatProvider の各プロパティに従って書式指定されます。

使用例使用例

DataGridViewCellFormattingEventArgs使用する方法次のコード例示します

Private Sub dataGridView1_CellFormatting(ByVal
 sender As Object, _
    ByVal e As DataGridViewCellFormattingEventArgs)
 _
    Handles dataGridView1.CellFormatting
    ' If the column is the Artist column, check the
    ' value.
    If Me.dataGridView1.Columns(e.ColumnIndex).Name
 _
        = "Artist" Then
        If e.Value IsNot Nothing Then

            ' Check for the string "pink" in the cell.
            Dim stringValue As String
 = _
            CType(e.Value, String)
            stringValue = stringValue.ToLower()
            If ((stringValue.IndexOf("pink")
 > -1)) Then
                e.CellStyle.BackColor = Color.Pink
            End If

        End If
    ElseIf Me.dataGridView1.Columns(e.ColumnIndex).Name
 _
        = "Release Date" Then
        ShortFormDateFormat(e)
    End If
End Sub

'Even though the date internaly stores the year as YYYY, using formatting,
 the
'UI can have the format in YY.  
Private Shared Sub ShortFormDateFormat(ByVal
 formatting As DataGridViewCellFormattingEventArgs)
    If formatting.Value IsNot Nothing Then
        Try
            Dim dateString As System.Text.StringBuilder
 = New System.Text.StringBuilder()
            Dim theDate As Date
 = DateTime.Parse(formatting.Value.ToString())

            dateString.Append(theDate.Month)
            dateString.Append("/")
            dateString.Append(theDate.Day)
            dateString.Append("/")
            dateString.Append(theDate.Year.ToString().Substring(2))
            formatting.Value = dateString.ToString()
            formatting.FormattingApplied = True
        Catch notInDateFormat As FormatException
            ' Set to false in case there are other handlers interested
 trying to
            ' format this DataGridViewCellFormattingEventArgs instance.
            formatting.FormattingApplied = False
        End Try
    End If
End Sub
private void dataGridView1_CellFormatting(object
 sender, DataGridViewCellFormattingEventArgs e)
{
    // If the column is the Artist column, check the
    // value.
    if (this.dataGridView1.Columns[e.ColumnIndex].Name
 == "Artist")
    {
        if (e.Value != null)
        {
            // Check for the string "pink" in the cell.
            string stringValue = (string)e.Value;
            stringValue = stringValue.ToLower();
            if ((stringValue.IndexOf("pink") > -1))
            {
                e.CellStyle.BackColor = Color.Pink;
            }

        }
    }
    else if (this.dataGridView1.Columns[e.ColumnIndex].Name
 == "Release Date")
    {
        ShortFormDateFormat(e);
    }
}

//Even though the date internaly stores the year as YYYY, using formatting,
 the
//UI can have the format in YY.  
private static void ShortFormDateFormat(DataGridViewCellFormattingEventArgs
 formatting)
{
    if (formatting.Value != null)
    {
        try
        {
            System.Text.StringBuilder dateString = new System.Text.StringBuilder();
            DateTime theDate = DateTime.Parse(formatting.Value.ToString());

            dateString.Append(theDate.Month);
            dateString.Append("/");
            dateString.Append(theDate.Day);
            dateString.Append("/");
            dateString.Append(theDate.Year.ToString().Substring(2));
            formatting.Value = dateString.ToString();
            formatting.FormattingApplied = true;
        }
        catch (FormatException)
        {
            // Set to false in case there are other handlers interested
 trying to
            // format this DataGridViewCellFormattingEventArgs instance.
            formatting.FormattingApplied = false;
        }
    }
}
void dataGridView1_CellFormatting( Object^ /*sender*/, DataGridViewCellFormattingEventArgs^
 e )
{
   // If the column is the Artist column, check the
   // value.
   if ( this->dataGridView1->Columns[
 e->ColumnIndex ]->Name->Equals( "Artist" ) )
   {
      if ( e->Value != nullptr )
      {
         // Check for the string "pink" in the cell.
         String^ stringValue = dynamic_cast<String^>(e->Value);
         stringValue = stringValue->ToLower();
         if ( (stringValue->IndexOf( "pink" ) >
 -1) )
         {
            DataGridViewCellStyle^ pinkStyle = gcnew DataGridViewCellStyle;

            //Change the style of the cell.
            pinkStyle->BackColor = Color::Pink;
            pinkStyle->ForeColor = Color::Black;
            pinkStyle->Font = gcnew System::Drawing::Font( "Times New Roman",8,FontStyle::Bold
 );
            e->CellStyle = pinkStyle;
         }
         
      }
   }
   else
   if ( this->dataGridView1->Columns[
 e->ColumnIndex ]->Name->Equals( "Release Date" ) )
   {
      ShortFormDateFormat( e );
   }
}


//Even though the date internaly stores the year as YYYY, using formatting,
 the
//UI can have the format in YY.  
void ShortFormDateFormat( DataGridViewCellFormattingEventArgs^
 formatting )
{
   if ( formatting->Value != nullptr )
   {
      try
      {
         System::Text::StringBuilder^ dateString = gcnew System::Text::StringBuilder;
         DateTime theDate = DateTime::Parse( formatting->Value->ToString()
 );
         dateString->Append( theDate.Month );
         dateString->Append( "/" );
         dateString->Append( theDate.Day );
         dateString->Append( "/" );
         dateString->Append( theDate.Year.ToString()->Substring( 2 ) );
         formatting->Value = dateString->ToString();
         formatting->FormattingApplied = true;
      }
      catch ( Exception^ /*notInDateFormat*/ ) 
      {
         // Set to false in case there are other handlers interested
 trying to
         // format this DataGridViewCellFormattingEventArgs instance.
         formatting->FormattingApplied = false;
      }

   }
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DataGridViewCellFormattingEventArgs クラス
DataGridViewCellFormattingEventArgs メンバ
System.Windows.Forms 名前空間
DataGridView クラス
DataGridView.CellFormatting イベント
DataGridView.OnCellFormatting
DataGridViewCellStyle
DataGridViewCell.InheritedStyle プロパティ
DataGridViewCell.Value プロパティ
DataGridViewCell.FormattedValue プロパティ
DataGridViewCell.FormattedValueType プロパティ
CellStyle
ConvertEventArgs.Value プロパティ
その他の技術情報
Windows フォーム DataGridView コントロールでのセルスタイル

DataGridViewCellFormattingEventArgs プロパティ


パブリック プロパティパブリック プロパティ

  名前 説明
パブリック プロパティ CellStyle 書式指定するセルスタイル取得または設定します
パブリック プロパティ ColumnIndex 書式指定するセルの列インデックス取得します
パブリック プロパティ DesiredType  必要な値のデータ型取得します。 ( ConvertEventArgs から継承されます。)
パブリック プロパティ FormattingApplied セル値が正常に書式指定されたかどうかを示す値を取得または設定します
パブリック プロパティ RowIndex 書式指定するセルの行インデックス取得します
パブリック プロパティ Value  ConvertEventArgs の値を取得または設定します。 ( ConvertEventArgs から継承されます。)
参照参照

関連項目

DataGridViewCellFormattingEventArgs クラス
System.Windows.Forms 名前空間
DataGridView クラス
DataGridView.CellFormatting イベント
DataGridView.CellParsing イベント
DataGridView.DefaultCellStyle プロパティ
DataGridView.OnCellFormatting
DataGridViewCellStyle
DataGridViewCellStyle.Format
DataGridViewCellStyle.FormatProvider
DataGridViewCellStyle.NullValue
DataGridViewCellStyle.DataSourceNullValue
DataGridViewCell.InheritedStyle プロパティ
DataGridViewCell.Value プロパティ
DataGridViewCell.FormattedValue プロパティ
DataGridViewCell.FormattedValueType プロパティ
DataGridViewCell.GetFormattedValue
DataGridViewCellFormattingEventHandler
FormattingApplied
CellStyle
ConvertEventArgs.Value プロパティ

その他の技術情報

Windows フォーム DataGridView コントロールでのセルスタイル
方法 : Windows フォーム DataGridView コントロールデータ書式設定カスタマイズする
イベント利用

DataGridViewCellFormattingEventArgs メソッド


パブリック メソッドパブリック メソッド

プロテクト メソッドプロテクト メソッド
参照参照

関連項目

DataGridViewCellFormattingEventArgs クラス
System.Windows.Forms 名前空間
DataGridView クラス
DataGridView.CellFormatting イベント
DataGridView.CellParsing イベント
DataGridView.DefaultCellStyle プロパティ
DataGridView.OnCellFormatting
DataGridViewCellStyle
DataGridViewCellStyle.Format
DataGridViewCellStyle.FormatProvider
DataGridViewCellStyle.NullValue
DataGridViewCellStyle.DataSourceNullValue
DataGridViewCell.InheritedStyle プロパティ
DataGridViewCell.Value プロパティ
DataGridViewCell.FormattedValue プロパティ
DataGridViewCell.FormattedValueType プロパティ
DataGridViewCell.GetFormattedValue
DataGridViewCellFormattingEventHandler
FormattingApplied
CellStyle
ConvertEventArgs.Value プロパティ

その他の技術情報

Windows フォーム DataGridView コントロールでのセルスタイル
方法 : Windows フォーム DataGridView コントロールデータ書式設定カスタマイズする
イベント利用

DataGridViewCellFormattingEventArgs メンバ

DataGridView の CellFormatting イベントデータ提供します

DataGridViewCellFormattingEventArgs データ型公開されるメンバを以下の表に示します


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド DataGridViewCellFormattingEventArgs DataGridViewCellFormattingEventArgs クラス新しインスタンス初期化します。
パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ CellStyle 書式指定するセルスタイル取得または設定します
パブリック プロパティ ColumnIndex 書式指定するセルの列インデックス取得します
パブリック プロパティ DesiredType  必要な値のデータ型取得します。(ConvertEventArgs から継承されます。)
パブリック プロパティ FormattingApplied セル値が正常に書式指定されたかどうかを示す値を取得または設定します
パブリック プロパティ RowIndex 書式指定するセルの行インデックス取得します
パブリック プロパティ Value  ConvertEventArgs の値を取得または設定します。(ConvertEventArgs から継承されます。)
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

DataGridViewCellFormattingEventArgs クラス
System.Windows.Forms 名前空間
DataGridView クラス
DataGridView.CellFormatting イベント
DataGridView.CellParsing イベント
DataGridView.DefaultCellStyle プロパティ
DataGridView.OnCellFormatting
DataGridViewCellStyle
DataGridViewCellStyle.Format
DataGridViewCellStyle.FormatProvider
DataGridViewCellStyle.NullValue
DataGridViewCellStyle.DataSourceNullValue
DataGridViewCell.InheritedStyle プロパティ
DataGridViewCell.Value プロパティ
DataGridViewCell.FormattedValue プロパティ
DataGridViewCell.FormattedValueType プロパティ
DataGridViewCell.GetFormattedValue
DataGridViewCellFormattingEventHandler
FormattingApplied
CellStyle
ConvertEventArgs.Value プロパティ

その他の技術情報

Windows フォーム DataGridView コントロールでのセルスタイル
方法 : Windows フォーム DataGridView コントロールデータ書式設定カスタマイズする
イベント利用



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「DataGridViewCellFormattingEventArgs」の関連用語

DataGridViewCellFormattingEventArgsのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



DataGridViewCellFormattingEventArgsのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS