DataGridView.CellParsing DataGridView.CellParsing DataGridView.CellParsing DataGridView.CellParsing Event

定義

セルの値が変更された場合にセルが編集モードを終了したときに発生します。Occurs when a cell leaves edit mode if the cell value has been modified.

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 

次のコード例を処理する方法を示しています、CellParsingイベント。The following code example shows how to handle the CellParsing event. 使用する方法も示します、DataGridViewCellParsingEventArgsクラス。It also shows how to use the DataGridViewCellParsingEventArgs class.

// 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

注釈

既定で、DataGridViewコントロールがセルで指定された型の基になる実際のセル値がセルに表示されるユーザー指定の値の変換を試みるValueTypeプロパティ。By default, the DataGridView control will attempt to convert a user-specified value displayed in a cell to an actual underlying cell value in the type specified by the cell ValueType property. この変換は、セルによって返されるセル スタイルの書式設定プロパティを使用してInheritedStyleプロパティ。This conversion uses the formatting properties of the cell style returned by the cell InheritedStyle property.

標準変換がニーズを満たしていない場合は、処理、CellParsing必要な型への変換のカスタム値を提供するイベントです。If the standard conversion does not meet your needs, handle the CellParsing event to provide custom value conversion to the required type.

指定されたメソッドを使用して編集モードを入力できる、EditModeプロパティ、および編集モードでは、別のセルに移動してまたは ENTER キーを押して、セルに、変更をコミットのままにできます。Users can enter edit mode using the method specified by the EditMode property, and can leave edit mode, committing any changes to a cell, by moving to another cell or by pressing ENTER. ESC キーを押しては元に戻す値への変更がコミットする前に、CellParsingイベントは発生しません。Pressing ESC will revert any changes to the value before it is committed, and the CellParsing event will not occur. CellParsing最終的な値は、元の値と同じ場合でも、セルの値が実際に変更された場合にのみをイベントが発生します。The CellParsing event occurs only if the cell value has actually been modified, even if the final value is the same as the original value. 発生時に、CommitEditメソッドが呼び出されます。It also occurs when the CommitEdit method is called.

処理するとき、CellParsingイベント、自分で値を変換できますか、既定の変換をカスタマイズすることができます。When you handle the CellParsing event, you can convert the value yourself or you can customize the default conversion. たとえば、値変換できます、セルを使用して自分でParseFormattedValueメソッドを独自の型コンバーター。For example, you can convert the value yourself using the cell ParseFormattedValue method with type converters of your choosing. または、既定のコンバーターは、値を解析しますが、変更の種類をさせることができます、 NullValueDataSourceNullValue、およびFormatProviderによって返されるオブジェクトのプロパティ、DataGridViewCellParsingEventArgs.InheritedCellStyleセルを使用して初期化されるプロパティ、 InheritedStyleプロパティ。Alternatively, you can let the default type converters parse the value, but modify the NullValue, DataSourceNullValue, and FormatProvider properties of the object returned by the DataGridViewCellParsingEventArgs.InheritedCellStyle property, which is initialized using the cell InheritedStyle property.

値変換すると、自分で、置換の初期の書式設定された値、ConvertEventArgs.Valueセルで指定された型に変換された値を持つプロパティValueTypeプロパティ。When you convert the value yourself, replace the initial, formatted value of the ConvertEventArgs.Value property with the converted value in the type specified by the cell ValueType property. 解析が必要なことを示す、設定、DataGridViewCellParsingEventArgs.ParsingAppliedプロパティをtrueします。To indicate that no further parsing is necessary, set the DataGridViewCellParsingEventArgs.ParsingApplied property to true.

ときにイベント ハンドラーが完了すると場合、ConvertEventArgs.Valuenullまたは正しい型ではない、またはDataGridViewCellParsingEventArgs.ParsingAppliedプロパティはfalseValueセルを使用して解析されますParseFormattedValue既定の型コンバーターを持つメソッド。When the event handler completes, if the ConvertEventArgs.Value is null or is not of the correct type, or the DataGridViewCellParsingEventArgs.ParsingApplied property is false, the Value is parsed using the cell ParseFormattedValue method with default type converters. このメソッドの既定の実装を使用して値を解析し、 NullValueDataSourceNullValueFormatProviderでセルのスタイルのプロパティが渡されます。The default implementation of this method parses the value using the NullValue, DataSourceNullValue, and FormatProvider properties of the cell style passed in. 値が等しくない場合NullValueを使用して、値を解析、FormatProviderプロパティと型コンバーターで渡されます。If the value is not equal to NullValue, the value is parsed using the FormatProvider property and the type converters passed in.

セル値の表示の書式設定された値への変換をカスタマイズするには、処理、CellFormattingイベント。To customize the conversion of a cell value into a formatted value for display, handle the CellFormatting event.

イベントを処理する方法の詳細については、次を参照してください。処理とイベントの発生します。For more information about how to handle events, see Handling and Raising Events.

適用対象

こちらもご覧ください