DataGridViewCellFormattingEventHandler デリゲートとは? わかりやすく解説

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

DataGridViewCellFormattingEventHandler デリゲート

メモ : このデリゲートは、.NET Framework version 2.0新しく追加されたものです。

DataGridView の CellFormatting イベント処理するメソッド表します

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

Public Delegate Sub DataGridViewCellFormattingEventHandler
 ( _
    sender As Object, _
    e As DataGridViewCellFormattingEventArgs _
)
Dim instance As New DataGridViewCellFormattingEventHandler(AddressOf
 HandlerMethod)
public delegate void DataGridViewCellFormattingEventHandler
 (
    Object sender,
    DataGridViewCellFormattingEventArgs e
)
public delegate void DataGridViewCellFormattingEventHandler
 (
    Object^ sender, 
    DataGridViewCellFormattingEventArgs^ e
)
/** @delegate */
public delegate void DataGridViewCellFormattingEventHandler
 (
    Object sender, 
    DataGridViewCellFormattingEventArgs e
)
JScript では、デリゲート使用できますが、新規に宣言することはできません。

パラメータ

sender

イベントソース

e

イベント データ格納している DataGridViewCellFormattingEventArgs。

解説解説

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 イベント処理します

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

DataGridViewCellFormattingEventHandler デリゲート作成する場合は、イベント処理するメソッド識別してくださいイベントイベント ハンドラ関連付けるには、デリゲートインスタンスイベント追加しますデリゲート削除しない限り、そのイベント発生すると常にイベント ハンドラ呼び出されます。イベント ハンドラ デリゲート詳細については、「イベントデリゲート」を参照してください

使用例使用例

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;
      }

   }
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



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

辞書ショートカット

すべての辞書の索引

DataGridViewCellFormattingEventHandler デリゲートのお隣キーワード
検索ランキング

   

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



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

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

©2024 GRAS Group, Inc.RSS