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