Share via


DataGridViewCellFormattingEventArgs Kelas

Definisi

Menyediakan data untuk CellFormatting peristiwa DataGridView.

public ref class DataGridViewCellFormattingEventArgs : System::Windows::Forms::ConvertEventArgs
public class DataGridViewCellFormattingEventArgs : System.Windows.Forms.ConvertEventArgs
type DataGridViewCellFormattingEventArgs = class
    inherit ConvertEventArgs
Public Class DataGridViewCellFormattingEventArgs
Inherits ConvertEventArgs
Warisan
DataGridViewCellFormattingEventArgs

Contoh

Contoh kode berikut menunjukkan cara menangani CellFormatting.

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

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

Keterangan

CellFormatting Tangani peristiwa untuk menyesuaikan konversi nilai sel ke dalam format yang cocok untuk ditampilkan atau untuk menyesuaikan tampilan sel tergantung pada status atau nilainya.

Peristiwa terjadi CellFormatting setiap kali setiap sel dicat, jadi Anda harus menghindari pemrosesan panjang saat menangani peristiwa ini. Kejadian ini juga terjadi ketika sel FormattedValue diambil atau metodenya GetFormattedValue dipanggil.

Saat Anda menangani CellFormatting peristiwa, properti diinisialisasi ConvertEventArgs.Value dengan nilai sel. Jika Anda memberikan konversi kustom dari nilai sel ke nilai tampilan, atur ConvertEventArgs.Value properti ke nilai yang dikonversi, memastikan bahwa nilai baru adalah jenis yang ditentukan oleh properti sel FormattedValueType . Untuk menunjukkan bahwa tidak ada pemformatan nilai lebih lanjut yang diperlukan, atur properti ke DataGridViewCellFormattingEventArgs.FormattingAppliedtrue.

Ketika penanganan aktivitas selesai, jika ConvertEventArgs.Value adalah null atau bukan jenis yang benar, atau DataGridViewCellFormattingEventArgs.FormattingApplied properti adalah false, Value diformat menggunakan Formatproperti , NullValue, DataSourceNullValue, dan FormatProvider dari gaya sel yang dikembalikan oleh DataGridViewCellFormattingEventArgs.CellStyle properti , yang diinisialisasi menggunakan properti sel InheritedStyle .

Terlepas dari DataGridViewCellFormattingEventArgs.FormattingApplied nilai properti , properti tampilan objek yang dikembalikan oleh DataGridViewCellFormattingEventArgs.CellStyle properti digunakan untuk merender sel.

Untuk informasi selengkapnya tentang pemformatan kustom menggunakan CellFormatting peristiwa, lihat Cara: Mengkustomisasi Pemformatan Data di kontrol Formulir Windows DataGridView.

Untuk menghindari penalti performa saat menangani peristiwa ini, akses sel melalui parameter penanganan aktivitas daripada mengakses sel secara langsung.

Untuk mengkustomisasi konversi nilai yang diformat dan ditentukan pengguna menjadi nilai sel aktual, tangani CellParsing peristiwa.

Untuk informasi selengkapnya tentang cara menangani peristiwa, lihat Menangani dan Menaikkan Peristiwa.

Konstruktor

DataGridViewCellFormattingEventArgs(Int32, Int32, Object, Type, DataGridViewCellStyle)

Menginisialisasi instans baru kelas DataGridViewCellFormattingEventArgs.

Properti

CellStyle

Mendapatkan atau mengatur gaya sel yang sedang diformat.

ColumnIndex

Mendapatkan indeks kolom sel yang sedang diformat.

DesiredType

Mendapatkan jenis data dari nilai yang diinginkan.

(Diperoleh dari ConvertEventArgs)
FormattingApplied

Mendapatkan atau mengatur nilai yang menunjukkan apakah nilai sel telah berhasil diformat.

RowIndex

Mendapatkan indeks baris sel yang sedang diformat.

Value

Mendapatkan atau menetapkan nilai ConvertEventArgs.

(Diperoleh dari ConvertEventArgs)

Metode

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk

Lihat juga