Vorgehensweise: 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 ihren gesamten Inhalt zu zeigen. Sie können dieses Verhalten jedoch überschreiben, indem Sie QuickInfo-Textwerte für einzelne Zellen festlegen. Dies ist nützlich, um dem Benutzer zusätzliche Informationen zu einer Zelle anzuzeigen oder ihm eine alternative Beschreibung des Zellinhalts zu liefern. Wenn Sie z. B. eine Zeile haben, in der Statussymbole angezeigt werden, möchten Sie möglicherweise mithilfe von QuickInfos Erklärungen in Textform bereitstellen.
Sie können die Anzeige von QuickInfos auf Zellebene 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. 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
Kompilieren des Codes
Für dieses Beispiel benötigen Sie Folgendes:
Ein DataGridView-Steuerelement mit dem Namen
dataGridView1
, das eine Spalte mit dem NamenRating
zur Anzeige von Zeichenfolgen mit einem bis vier Sternchen (*) enthält. Das CellFormatting-Ereignis des Steuerelements muss der im Beispiel gezeigten Ereignishandlermethode zugeordnet sein.Verweise auf die Assemblys System und System.Windows.Forms.
Stabile Programmierung
Wenn Sie das DataGridView-Steuerelement an eine externe Datenquelle binden oder Ihre eigene Datenquelle durch Implementierung des virtuellen Modus bereitstellen, können Leistungsprobleme auftreten. Um Leistungseinbußen beim Arbeiten mit großen Datenmengen zu vermeiden, behandeln Sie das CellToolTipTextNeeded-Ereignis, anstatt die ToolTipText-Eigenschaft für mehrere Zellen festzulegen. Wenn Sie dieses Ereignis behandeln, löst das Abrufen des Werts einer ToolTipText-Eigenschaft der Zelle das Ereignis aus und gibt den Wert der DataGridViewCellToolTipTextNeededEventArgs.ToolTipText-Eigenschaft zurück, wie im Ereignishandler angegeben.
Weitere Informationen
.NET Desktop feedback