我有一个数据网格视图,如:
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
列,这可能吗?问候
答案 0 :(得分:2)
您可以使用CellMouseEnter
的{{1}}或CellToolTipTextNeeded
事件来执行此操作。隐藏要用作源的列,然后替换示例中的控件名称以匹配您的DataGridView
。
DataGridView
答案 1 :(得分:1)
使用CellMouseEnter
事件可以实现此目的,但也可以通过Microsoft REFERENCE的CellFormatting
事件来完成
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();
}
答案 2 :(得分:0)
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;
}
}
}
答案 3 :(得分:0)
有一个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}";
}
}