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. 또는 기본 형식 변환기 값을 구문 분석 하지만 수정할 수는 NullValue, DataSourceNullValue, 및 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. 이 메서드의 기본 구현을 사용 하 여 값을 구문 분석 합니다 NullValue, DataSourceNullValue, 및 FormatProvider 셀 스타일의 속성에 전달 합니다.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.

적용 대상

추가 정보