DataGridView.CellParsing Kejadian
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.
Terjadi saat sel meninggalkan mode edit jika nilai sel telah dimodifikasi.
public:
event System::Windows::Forms::DataGridViewCellParsingEventHandler ^ CellParsing;
public event System.Windows.Forms.DataGridViewCellParsingEventHandler CellParsing;
public event System.Windows.Forms.DataGridViewCellParsingEventHandler? CellParsing;
member this.CellParsing : System.Windows.Forms.DataGridViewCellParsingEventHandler
Public Custom Event CellParsing As DataGridViewCellParsingEventHandler
Jenis Acara
Contoh
Contoh kode berikut menunjukkan cara menangani CellParsing peristiwa. Ini juga menunjukkan cara menggunakan DataGridViewCellParsingEventArgs kelas .
// Handling CellParsing allows one to accept user input, then map it to a different
// internal representation.
void dataGridView1_CellParsing( Object^ /*sender*/, DataGridViewCellParsingEventArgs^ e )
{
if ( this->dataGridView1->Columns[ e->ColumnIndex ]->Name->Equals( "Release Date" ) )
{
if ( e != nullptr )
{
if ( e->Value != nullptr )
{
try
{
// Map what the user typed into UTC.
e->Value = DateTime::Parse( e->Value->ToString() ).ToUniversalTime();
// Set the ParsingApplied property to
// Show the event is handled.
e->ParsingApplied = true;
}
catch ( FormatException^ /*ex*/ )
{
// Set to false in case another CellParsing handler
// wants to try to parse this DataGridViewCellParsingEventArgs instance.
e->ParsingApplied = false;
}
}
}
}
}
// Handling CellParsing allows one to accept user input, then map it to a different
// internal representation.
private void dataGridView1_CellParsing(object sender, DataGridViewCellParsingEventArgs e)
{
if (this.dataGridView1.Columns[e.ColumnIndex].Name == "Release Date")
{
if (e != null)
{
if (e.Value != null)
{
try
{
// Map what the user typed into UTC.
e.Value = DateTime.Parse(e.Value.ToString()).ToUniversalTime();
// Set the ParsingApplied property to
// Show the event is handled.
e.ParsingApplied = true;
}
catch (FormatException)
{
// Set to false in case another CellParsing handler
// wants to try to parse this DataGridViewCellParsingEventArgs instance.
e.ParsingApplied = false;
}
}
}
}
}
' Handling CellParsing allows one to accept user input, then map it to a different
' internal representation.
Private Sub dataGridView1_CellParsing(ByVal sender As Object, _
ByVal e As DataGridViewCellParsingEventArgs) _
Handles dataGridView1.CellParsing
If Me.dataGridView1.Columns(e.ColumnIndex).Name = _
"Release Date" Then
If e IsNot Nothing Then
If e.Value IsNot Nothing Then
Try
' Map what the user typed into UTC.
e.Value = _
DateTime.Parse(e.Value.ToString()).ToUniversalTime()
' Set the ParsingApplied property to
' Show the event is handled.
e.ParsingApplied = True
Catch ex As FormatException
' Set to false in case another CellParsing handler
' wants to try to parse this DataGridViewCellParsingEventArgs instance.
e.ParsingApplied = False
End Try
End If
End If
End If
End Sub
Keterangan
Secara default, DataGridView kontrol akan mencoba mengonversi nilai yang ditentukan pengguna yang ditampilkan dalam sel menjadi nilai sel dasar aktual dalam jenis yang ditentukan oleh properti sel ValueType . Konversi ini menggunakan properti pemformatan gaya sel yang dikembalikan oleh properti sel InheritedStyle .
Jika konversi standar tidak memenuhi kebutuhan Anda, tangani CellParsing peristiwa untuk memberikan konversi nilai kustom ke jenis yang diperlukan.
Pengguna dapat memasuki mode edit menggunakan metode yang ditentukan oleh EditMode properti , dan dapat meninggalkan mode edit, melakukan perubahan apa pun pada sel, dengan berpindah ke sel lain atau dengan menekan ENTER. Menekan ESC akan mengembalikan perubahan apa pun ke nilai sebelum diterapkan, dan CellParsing peristiwa tidak akan terjadi. Peristiwa CellParsing hanya terjadi jika nilai sel benar-benar telah dimodifikasi, bahkan jika nilai akhir sama dengan nilai aslinya. Ini juga terjadi ketika CommitEdit metode dipanggil.
Saat menangani CellParsing peristiwa, Anda dapat mengonversi nilai sendiri atau Anda dapat menyesuaikan konversi default. Misalnya, Anda dapat mengonversi nilai sendiri menggunakan metode sel ParseFormattedValue dengan pengonversi jenis yang Anda pilih. Atau, Anda dapat membiarkan pengonversi jenis default mengurai nilai, tetapi memodifikasi properti , DataSourceNullValue, dan FormatProvider objek yang dikembalikan oleh DataGridViewCellParsingEventArgs.InheritedCellStyle properti , yang diinisialisasi menggunakan properti selInheritedStyle.NullValue
Saat Anda mengonversi nilai sendiri, ganti nilai awal yang diformat properti ConvertEventArgs.Value dengan nilai yang dikonversi dalam jenis yang ditentukan oleh properti sel ValueType . Untuk menunjukkan bahwa tidak ada penguraian lebih lanjut yang diperlukan, atur properti ke DataGridViewCellParsingEventArgs.ParsingAppliedtrue
.
Ketika penanganan aktivitas selesai, jika ConvertEventArgs.Value adalah null
atau bukan jenis yang benar, atau DataGridViewCellParsingEventArgs.ParsingApplied properti adalah false
, Value diurai menggunakan metode sel ParseFormattedValue dengan pengonversi tipe default. Implementasi default metode ini mengurai nilai menggunakan NullValueproperti , DataSourceNullValue, dan FormatProvider dari gaya sel yang diteruskan. Jika nilainya tidak sama dengan NullValue, nilai diurai menggunakan FormatProvider properti dan pengonversi jenis yang diteruskan.
Untuk mengkustomisasi konversi nilai sel menjadi nilai yang diformat untuk ditampilkan, tangani CellFormatting peristiwa.
Untuk informasi selengkapnya tentang cara menangani peristiwa, lihat Menangani dan Menaikkan Peristiwa.
Berlaku untuk
Lihat juga
- CellParsing
- OnCellParsing(DataGridViewCellParsingEventArgs)
- CommitEdit(DataGridViewDataErrorContexts)
- CellFormatting
- EditMode
- ValueType
- InheritedStyle
- ParseFormattedValue(Object, DataGridViewCellStyle, TypeConverter, TypeConverter)
- DataGridViewCellParsingEventHandler
- DataGridViewCellParsingEventArgs
- InheritedCellStyle
- ParsingApplied
- Value
- DataGridViewCellStyle
- NullValue
- Format
- FormatProvider
- Gaya Sel dalam Kontrol Formulir Windows DataGridView
- Kontrol DataGridView (Formulir Windows)