[英]Add tooltip to specific column on Data Grid View
我有一個數據網格視圖,如:
if (this.dgv.Rows.Count < 1)
{
this.dgv.DataSource = null;
this.dgv.DataBindings.Clear();
if (this.dgv.Columns.Count == 0) this.dgv.ColumnCount = 15;
this.dgv.ColumnHeadersVisible = true;
this.dgv.Columns[4].Name = "Added By";
this.dgv.Columns[5].Name = "AddedByFullName";
}
如你所見,我有第4列名為Added By
this.dgv.Columns[4].Name = "Added By";
和第5列稱為AddedByFullName
this.dgv.Columns[5].Name = "AddedByFullName";
我想知道如何使用AddedByFullName
列作為Added By
列的工具提示然后我將刪除AddedByFullName
列,這可能嗎? 問候
您可以使用DataGridView
的CellMouseEnter
或CellToolTipTextNeeded
事件來完成此操作。 隱藏要用作源的列,然后替換示例中的控件名稱以匹配DataGridView
。
private void dgv_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
{
if ((e.ColumnIndex == dgv.Columns["Added By"].Index)
&& (e.RowIndex > -1))
{
dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = dgv.Rows[e.RowIndex].Cells[dgv.Columns["AddedByFullName"].Index].Value.ToString();
}
}
使用CellMouseEnter
事件可以實現這一目標,但也可以使用CellFormatting
事件作為Microsoft REFERENCE完成
private void dgJobNotes_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if ((e.ColumnIndex == this.dgJobNotes.Columns["Added By"].Index)
&& e.Value != null)
{
dgJobNotes.Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = dgJobNotes.Rows[e.RowIndex].Cells[5].Value.ToString();
}
DataGridViewColumn
類具有ToolTipText
屬性。 如果在列上設置它,您將獲得列標題的工具提示。 如果要在每個單元格上顯示工具提示,可以實現CellFormatting
事件處理程序,拉出正確的單元格(從列中)並設置單元格的ToolTipText
屬性。 就像是:
private const int InterestingColumnNumber = 5;
private const string InterestingColumnToolTipText = "This Space For Rent";
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
var senderGridView = sender as DataGridView;
if (senderGridView != null)
{
if (e.ColumnIndex == InterestingColumnNumber)
{
var cell = senderGridView.Rows[e.RowIndex].Cells[InterestingColumnNumber];
cell.ToolTipText = InterestingColumnToolTipText;
}
}
}
有一個CellToolTipTextNeeded
事件,專門用於設置工具提示文本。 您不需要使用CellFormatting
或CellMouseEnter
。 如果要將第5列的文本顯示為第4列的工具提示,則可以編寫:
private void g_CellToolTipTextNeeded(object sender, DataGridViewCellToolTipTextNeededEventArgs e)
{
if (e.ColumnIndex == 4 && e.RowIndex >= 0)
{
e.ToolTipText = $"{dataGridView1[5, e.RowIndex].Value}";
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.