[英]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.