Postupy: Přidání ToolTips do jednotlivých buněk v ovládacím prvku Windows Forms DataGridView

Nástroj Tipy ve výchozím nastavení slouží k zobrazení hodnot DataGridView buněk, které jsou pro zobrazení celého obsahu příliš malé. Toto chování ale můžete přepsat tak, aby se pro jednotlivé buňky nastavily hodnoty popisku textu. 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ástroje zadat vysvětlení textu Tipy.

Zobrazení nástroje na úrovni buňky můžete také zakázat Tipy nastavením DataGridView.ShowCellToolTips vlastnosti na falsehodnotu .

Přidání popisu do buňky

  • DataGridViewCell.ToolTipText Nastavte vlastnost.

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

Probíhá kompilace kódu

  • Tento příklad vyžaduje:

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

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

Robustní programování

Když svážete DataGridView ovládací prvek 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, zacházejte CellToolTipTextNeeded s událostí a nenastavujte ToolTipText vlastnost více buněk. Při zpracování této události získání hodnoty vlastnosti buňky ToolTipText vyvolá událost a vrátí hodnotu DataGridViewCellToolTipTextNeededEventArgs.ToolTipText vlastnosti, jak je uvedeno v obslužné rutině události.

Viz také