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ázvemRating
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é
.NET Desktop feedback