Sdílet prostřednictvím


Postupy: Přidání popisků pro jednotlivé buňky v ovládacím prvku Windows Forms DataGridView

Ve výchozím nastavení se ToolTips používají k zobrazení hodnot DataGridView buněk, které jsou příliš malé, aby se zobrazil celý jejich obsah. Můžete ale přepsat toto chování a nastavit hodnoty textu ToolTipu pro jednotlivé buňky. To je užitečné zobrazit uživatelům další informace o buňce nebo poskytnout uživatelům alternativní popis obsahu buňky. Pokud máte například řádek, který zobrazuje ikony stavu, můžete pomocí nápověd poskytnout textová vysvětlení.

Zobrazení popisů na úrovni buněk můžete také zakázat nastavením vlastnosti DataGridView.ShowCellToolTips na false.

Přidat popisek k buňce

  • Nastavte vlastnost DataGridViewCell.ToolTipText.

    // Sets the ToolTip text for cells in the Rating column.
    void dataGridView1_CellFormatting(Object^ /*sender*/, 
        DataGridViewCellFormattingEventArgs^ e)
    {
        if ( (e->ColumnIndex == this->dataGridView1->Columns["Rating"]->Index)
            && e->Value != nullptr )
        {
            DataGridViewCell^ cell = 
                this->dataGridView1->Rows[e->RowIndex]->Cells[e->ColumnIndex];
            if (e->Value->Equals("*"))
            {                
                cell->ToolTipText = "very bad";
            }
            else if (e->Value->Equals("**"))
            {
                cell->ToolTipText = "bad";
            }
            else if (e->Value->Equals("***"))
            {
                cell->ToolTipText = "good";
            }
            else if (e->Value->Equals("****"))
            {
                cell->ToolTipText = "very good";
            }
        }
    }
    
    // Sets the ToolTip text for cells in the Rating column.
    void dataGridView1_CellFormatting(object sender,
        DataGridViewCellFormattingEventArgs e)
    {
        if ( (e.ColumnIndex == this.dataGridView1.Columns["Rating"].Index)
            && e.Value != null )
        {
            DataGridViewCell cell =
                this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
            if (e.Value.Equals("*"))
            {
                cell.ToolTipText = "very bad";
            }
            else if (e.Value.Equals("**"))
            {
                cell.ToolTipText = "bad";
            }
            else if (e.Value.Equals("***"))
            {
                cell.ToolTipText = "good";
            }
            else if (e.Value.Equals("****"))
            {
                cell.ToolTipText = "very good";
            }
        }
    }
    
    ' Sets the ToolTip text for cells in the Rating column.
    Sub dataGridView1_CellFormatting(ByVal sender As Object, _
        ByVal e As DataGridViewCellFormattingEventArgs) _
        Handles dataGridView1.CellFormatting
    
        If e.ColumnIndex = Me.dataGridView1.Columns("Rating").Index _
            AndAlso (e.Value IsNot Nothing) Then
    
            With Me.dataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex)
    
                If e.Value.Equals("*") Then
                    .ToolTipText = "very bad"
                ElseIf e.Value.Equals("**") Then
                    .ToolTipText = "bad"
                ElseIf e.Value.Equals("***") Then
                    .ToolTipText = "good"
                ElseIf e.Value.Equals("****") Then
                    .ToolTipText = "very good"
                End If
    
            End With
    
        End If
    
    End Sub
    

Kompilace kódu

  • Tento příklad vyžaduje:

  • Ovládací prvek DataGridView s názvem dataGridView1, který obsahuje sloupec s názvem Rating pro zobrazení řetězcových hodnot jednoho až čtyř symbolů hvězdičky (*). CellFormatting událost ovládacího prvku musí být přidružena k metodě obsluhy události uvedené v příkladu.

  • Odkazy na sestavení System a System.Windows.Forms.

Robustní programování

Když svážete ovládací prvek DataGridView s externím zdrojem dat nebo poskytnete vlastní zdroj dat implementací virtuálního režimu, může dojít k problémům s výkonem. Abyste se vyhnuli snížení výkonu při práci s velkými objemy dat, pracujte s událostí CellToolTipTextNeeded namísto nastavení vlastnosti ToolTipText u více buněk. Při zpracování této události vyvolá získání hodnoty vlastnosti buňky ToolTipText událost a vrátí hodnotu vlastnosti DataGridViewCellToolTipTextNeededEventArgs.ToolTipText, jak je specifikováno v obslužné rutině události.

Viz také