DataGridViewCellFormattingEventArgs Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
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
- DataGridView
- CellFormatting
- CellParsing
- DefaultCellStyle
- OnCellFormatting(DataGridViewCellFormattingEventArgs)
- DataGridViewCellStyle
- Format
- FormatProvider
- NullValue
- DataSourceNullValue
- InheritedStyle
- Value
- FormattedValue
- FormattedValueType
- GetFormattedValue(Object, Int32, DataGridViewCellStyle, TypeConverter, TypeConverter, DataGridViewDataErrorContexts)
- DataGridViewCellFormattingEventHandler
- FormattingApplied
- CellStyle
- Value
- Gaya Sel dalam Kontrol Formulir Windows DataGridView
- Cara: Mengkustomisasi Pemformatan Data di Formulir Windows Kontrol DataGridView