如何在标题单元格中添加一个小图标而不更改其格式和文本?我想在右键单击鼠标时切换显示/隐藏标题单元格中的图像。
我的问题不在于鼠标事件,但我不知道如何在标题单元格中显示和隐藏图像。 如果不可能,我想切换边框颜色或其他东西,以便用户知道发生了什么。
我已经尝试过这样的代码:How to display an image in a datagridview column header?。
我的代码:
if (e.ColumnIndex == 1 && e.RowIndex == -1)
{
e.PaintBackground(e.ClipBounds, false);
Point pt = e.CellBounds.Location; // where you want the bitmap in the cell
int offset = (e.CellBounds.Width - this.imageList1.ImageSize.Width) / 2;
pt.X += offset;
pt.Y += 1;
this.imageList1.Draw(e.Graphics, pt, 0);
e.Handled = true;
}
一个小问题是这段代码删除了CellHeaders文本,我可以修复将列名存储在字符串数组中并通过e.ColumnIndex显示它:
Font drawFont = new Font("Microsoft Sans Serif", 10);
SolidBrush drawBrush = new SolidBrush(Color.Black);
e.Graphics.DrawString(storredColNames[e.ColumnIndex], drawFont, drawBrush, e.CellBounds);
是否有其他方法可以保留Col名称?
我尝试了这样的东西,但似乎我可以在绘制单元格时访问图像,但是当我右键单击时,我需要能够访问图像,以显示和隐藏它。有没有办法做到这一点?