Gewusst wie: Hinzufügen von QuickInfos zu einzelnen Zellen in einem DataGridView-Steuerelement in Windows Forms

Standardmäßig werden QuickInfos verwendet, um die Werte von DataGridView-Zellen anzuzeigen, die zu klein sind, um den gesamten Inhalt anzuzeigen. Sie können dieses Verhalten jedoch überschreiben, um QuickInfo-Textwerte für einzelne Zellen festzulegen. Dies bietet sich an, um Benutzern zusätzliche Informationen über eine Zelle anzuzeigen oder ihnen eine alternative Beschreibung des Zelleninhalts bereitzustellen. Wenn Sie beispielsweise über eine Zeile verfügen, in der Zustandssymbole angezeigt werden, möchten Sie möglicherweise Texterläuterungen in Form von QuickInfos bereitstellen.

Sie können die Anzeige von QuickInfos auf Zellenebene auch deaktivieren, indem Sie die DataGridView.ShowCellToolTips-Eigenschaft auf false festlegen.

So fügen Sie einer Zelle eine QuickInfo hinzu

  • Legen Sie die DataGridViewCell.ToolTipText-Eigenschaft fest.

    ' 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 'dataGridView1_CellFormatting
    
    // 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.
    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";
            }
        }
    }
    

Kompilieren des Codes

  • Für dieses Beispiel ist Folgendes erforderlich:

  • Ein DataGridView-Steuerelement mit dem Namen dataGridView1, das eine Spalte mit dem Namen Rating enthält, um Zeichenfolgenwerte in Form von einem bis vier Sternchensymbolen ("*") anzuzeigen. Das CellFormatting-Ereignis des Steuerelements muss mit der im Beispiel gezeigten Ereignishandlermethode verknüpft sein.

  • Verweise auf die System-Assembly und die System.Windows.Forms-Assembly.

Robuste Programmierung

Wenn Sie das DataGridView-Steuerelement an eine externe Datenquelle binden oder Ihre eigene Datenquelle bereitstellen, indem Sie den virtuellen Modus implementieren, treten möglicherweise Leistungsprobleme auf. Um Leistungseinbußen bei der Arbeit mit großen Datenmengen zu vermeiden, behandeln Sie das CellToolTipTextNeeded-Ereignis, anstatt die ToolTipText-Eigenschaft mehrerer Zellen festzulegen. Wenn Sie dieses Ereignis behandeln, wird durch Abrufen des Werts einer ToolTipText-Zelleneigenschaft das Ereignis ausgelöst und der Wert der DataGridViewCellToolTipTextNeededEventArgs.ToolTipText-Eigenschaft wie im Ereignishandler festgelegt zurückgegeben.

Siehe auch

Referenz

DataGridView

DataGridView.ShowCellToolTips

DataGridView.CellToolTipTextNeeded

DataGridViewCell

DataGridViewCell.ToolTipText

Weitere Ressourcen

Programmieren mit Zellen, Zeilen und Spalten im DataGridView-Steuerelement in Windows Forms