DataGridView.CellParsing Zdarzenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Występuje, gdy komórka opuszcza tryb edycji, jeśli wartość komórki została zmodyfikowana.
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
Typ zdarzenia
Przykłady
Poniższy przykład kodu przedstawia sposób obsługi CellParsing zdarzenia. Pokazuje również, jak używać DataGridViewCellParsingEventArgs klasy .
// 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
Uwagi
Domyślnie kontrolka DataGridView podejmie próbę przekonwertowania wartości określonej przez użytkownika wyświetlanej w komórce na rzeczywistą wartość komórki bazowej w typie określonym przez właściwość komórki ValueType . Ta konwersja używa właściwości formatowania stylu komórki zwracanych przez właściwość komórki InheritedStyle .
Jeśli konwersja standardowa nie spełnia Twoich potrzeb, obsłuż CellParsing zdarzenie, aby zapewnić konwersję wartości niestandardowej na wymagany typ.
Użytkownicy mogą wprowadzać tryb edycji przy użyciu metody określonej przez EditMode właściwość i mogą opuścić tryb edycji, zatwierdzając wszelkie zmiany w komórce, przechodząc do innej komórki lub naciskając klawisz ENTER. Naciśnięcie klawisza ESC spowoduje przywrócenie wszelkich zmian w wartości przed jej zatwierdzeniu, a CellParsing zdarzenie nie zostanie wykonane. Zdarzenie CellParsing występuje tylko wtedy, gdy wartość komórki została faktycznie zmodyfikowana, nawet jeśli ostateczna wartość jest taka sama jak oryginalna wartość. Występuje również w przypadku wywołania CommitEdit metody .
Podczas obsługi CellParsing zdarzenia można przekonwertować wartość samodzielnie lub dostosować konwersję domyślną. Możesz na przykład przekonwertować wartość samodzielnie przy użyciu metody komórki ParseFormattedValue z wybranymi konwerterami typów. Alternatywnie można zezwolić domyślnym konwerterom typów na analizowanie wartości, ale zmodyfikować NullValuewłaściwości , DataSourceNullValuei FormatProvider obiektu zwróconego przez DataGridViewCellParsingEventArgs.InheritedCellStyle właściwość , który jest inicjowany przy użyciu właściwości komórki InheritedStyle .
Podczas samodzielnej konwersji wartości zastąp początkową, sformatowaną wartość ConvertEventArgs.Value właściwości wartością przekonwertowaną w typie określonym przez właściwość komórki ValueType . Aby wskazać, że nie jest konieczne dalsze analizowanie, ustaw DataGridViewCellParsingEventArgs.ParsingApplied właściwość na true.
Po zakończeniu procedury obsługi zdarzeń, jeśli element ConvertEventArgs.Value jest null lub nie ma poprawnego typu, lub DataGridViewCellParsingEventArgs.ParsingApplied właściwość ma falsewartość , Value parametr jest analizowany przy użyciu metody komórki ParseFormattedValue z domyślnymi konwerterami typów. Domyślna implementacja tej metody analizuje wartość przy użyciu NullValuewłaściwości , DataSourceNullValuei FormatProvider stylu komórki przekazanego. Jeśli wartość nie jest równa NullValuewartości , wartość jest analizowana przy użyciu FormatProvider właściwości i konwerterów typów przekazanych.
Aby dostosować konwersję wartości komórki do sformatowanej wartości do wyświetlania, obsłuż CellFormatting zdarzenie.
Aby uzyskać więcej informacji na temat obsługi zdarzeń, zobacz Obsługa i podnoszenie zdarzeń.
Dotyczy
Zobacz też
- CellParsing
- OnCellParsing(DataGridViewCellParsingEventArgs)
- CommitEdit(DataGridViewDataErrorContexts)
- CellFormatting
- EditMode
- ValueType
- InheritedStyle
- ParseFormattedValue(Object, DataGridViewCellStyle, TypeConverter, TypeConverter)
- DataGridViewCellParsingEventHandler
- DataGridViewCellParsingEventArgs
- InheritedCellStyle
- ParsingApplied
- Value
- DataGridViewCellStyle
- NullValue
- Format
- FormatProvider
- Style komórki w formancie DataGridView formularzy systemu Windows
- DataGridView — Formant (Formularze systemu Windows)