DataGridViewCellFormattingEventArgs Třída

Definice

Poskytuje data pro CellFormatting událost .DataGridView

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
Dědičnost
DataGridViewCellFormattingEventArgs

Příklady

Následující příklad kódu ukazuje, jak zpracovat CellFormatting.

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

Poznámky

CellFormatting Zpracování události pro přizpůsobení převodu hodnoty buňky do formátu vhodného k zobrazení nebo přizpůsobení vzhledu buňky v závislosti na jejím stavu nebo hodnotě.

Událost CellFormatting nastane pokaždé, když je každá buňka vykreslena, takže byste se při zpracování této události měli vyhnout zdlouhavému zpracování. K této události dochází také při načtení buňky FormattedValue nebo při zavolání její GetFormattedValue metody.

Při zpracování CellFormatting události je ConvertEventArgs.Value vlastnost inicializována s hodnotou buňky. Pokud zadáte vlastní převod z hodnoty buňky na zobrazenou hodnotu, nastavte ConvertEventArgs.Value vlastnost na převedenou hodnotu a zajistěte, aby nová hodnota byla typu určeného vlastností buňky FormattedValueType . Pokud chcete označit, že není nutné žádné další formátování hodnot, nastavte DataGridViewCellFormattingEventArgs.FormattingApplied vlastnost na true.

Po dokončení obslužné rutiny události, pokud ConvertEventArgs.Value je null nebo není správného typu nebo DataGridViewCellFormattingEventArgs.FormattingApplied vlastnost je false, Value je formátován pomocí Formatvlastností , NullValue, DataSourceNullValuea FormatProvider stylu buňky vrácených DataGridViewCellFormattingEventArgs.CellStyle vlastností, která je inicializována pomocí vlastnosti buňky InheritedStyle .

Bez ohledu na hodnotu DataGridViewCellFormattingEventArgs.FormattingApplied vlastnosti se vlastnosti zobrazení objektu vráceného DataGridViewCellFormattingEventArgs.CellStyle vlastností použijí k vykreslení buňky.

Další informace o vlastním formátování pomocí CellFormatting události naleznete v tématu Postupy: Přizpůsobení formátování dat v ovládacím prvku model Windows Forms DataGridView.

Abyste se vyhnuli snížení výkonu při zpracování této události, přistupujte k buňce prostřednictvím parametrů obslužné rutiny události a ne přímo k buňce.

Chcete-li přizpůsobit převod formátované hodnoty zadané uživatelem na skutečnou hodnotu buňky, zpracujte CellParsing událost.

Další informace o zpracování událostí najdete v tématu Zpracování a vyvolávání událostí.

Konstruktory

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

Inicializuje novou instanci DataGridViewCellFormattingEventArgs třídy .

Vlastnosti

CellStyle

Získá nebo nastaví styl buňky, která je formátována.

ColumnIndex

Získá index sloupce buňky, která je formátována.

DesiredType

Získá datový typ požadované hodnoty.

(Zděděno od ConvertEventArgs)
FormattingApplied

Získá nebo nastaví hodnotu označující, zda byla hodnota buňky úspěšně naformátována.

RowIndex

Získá index řádku buňky, která je formátována.

Value

Získá nebo nastaví hodnotu objektu ConvertEventArgs.

(Zděděno od ConvertEventArgs)

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro

Viz také