DataGridViewCellFormattingEventArgs Sınıf

Tanım

bir CellFormattingolayı için DataGridView veri sağlar.

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
Devralma
DataGridViewCellFormattingEventArgs

Örnekler

Aşağıdaki kod örneğinde nasıl işleneceğini CellFormattinggösterilmektedir.

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

Açıklamalar

Hücre değerini görüntülemeye CellFormatting uygun bir biçime dönüştürmeyi özelleştirmek veya hücrenin durumuna veya değerine bağlı olarak görünümünü özelleştirmek için olayı işleyebilirsiniz.

Her CellFormatting hücre boyandığında olay gerçekleşir, bu nedenle bu olayı işlerken uzun işlemeden kaçınmanız gerekir. Bu olay, hücre FormattedValue alındığında veya GetFormattedValue yöntemi çağrıldığında da oluşur.

Olayı işlediğiniz CellFormatting zaman özelliği ConvertEventArgs.Value hücre değeriyle başlatılır. Hücre değerinden görüntüleme değerine özel dönüştürme sağlarsanız, yeni değerin hücre FormattedValueType özelliği tarafından belirtilen türde olduğundan emin olarak özelliğini dönüştürülen değere ayarlayınConvertEventArgs.Value. Başka değer biçimlendirmesinin gerekli olmadığını belirtmek için özelliğini olarak trueayarlayınDataGridViewCellFormattingEventArgs.FormattingApplied.

Olay işleyicisi tamamlandığında, değeri doğru türdeyse ConvertEventArgs.Valuenull veya değilse veya DataGridViewCellFormattingEventArgs.FormattingApplied özelliği ise Valuefalse, özelliği tarafından DataGridViewCellFormattingEventArgs.CellStyle döndürülen hücre stilinin , NullValue, DataSourceNullValueve özellikleri kullanılarak Formatbiçimlendirilir ve FormatProvider bu, hücre InheritedStyle özelliği kullanılarak başlatılır.

Özelliğin değerinden DataGridViewCellFormattingEventArgs.FormattingApplied bağımsız olarak, özelliği tarafından DataGridViewCellFormattingEventArgs.CellStyle döndürülen nesnenin görüntüleme özellikleri hücreyi işlemek için kullanılır.

Olayı kullanan CellFormatting özel biçimlendirme hakkında daha fazla bilgi için bkz . Nasıl yapılır: Windows Forms DataGridView Denetiminde Veri Biçimlendirmesini Özelleştirme.

Bu olayı işlerken performans cezalarından kaçınmak için, hücreye doğrudan erişmek yerine olay işleyicisinin parametreleri aracılığıyla hücreye erişin.

Biçimlendirilmiş, kullanıcı tarafından belirtilen bir değerin gerçek bir hücre değerine dönüştürülmesi özelleştirmek için olayı işleyebilir CellParsing .

Olayları işleme hakkında daha fazla bilgi için bkz. Olayları İşleme ve Oluşturma.

Oluşturucular

Name Description
DataGridViewCellFormattingEventArgs(Int32, Int32, Object, Type, DataGridViewCellStyle)

DataGridViewCellFormattingEventArgs sınıfının yeni bir örneğini başlatır.

Özellikler

Name Description
CellStyle

Biçimlendirilmekte olan hücrenin stilini alır veya ayarlar.

ColumnIndex

Biçimlendirilmekte olan hücrenin sütun dizinini alır.

DesiredType

İstenen değerin veri türünü alır.

(Devralındığı yer: ConvertEventArgs)
FormattingApplied

Hücre değerinin başarıyla biçimlendirilip biçimlendirilmediğini belirten bir değer alır veya ayarlar.

RowIndex

Biçimlendirilmekte olan hücrenin satır dizinini alır.

Value

değerini ConvertEventArgsalır veya ayarlar.

(Devralındığı yer: ConvertEventArgs)

Yöntemler

Name Description
Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır

Ayrıca bkz.