Datagridview在标题单元格中显示和隐藏图像,或更改标题单元格中的边框颜色

时间:2011-08-01 04:44:52

标签: c# winforms image datagridview toggle

如何在标题单元格中添加一个小图标而不更改其格式和文本?我想在右键单击鼠标时切换显示/隐藏标题单元格中的图像。

我的问题不在于鼠标事件,但我不知道如何在标题单元格中显示和隐藏图像。 如果不可能,我想切换边框颜色或其他东西,以便用户知道发生了什么。

我已经尝试过这样的代码: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名称?

我尝试了这样的东西,但似乎我可以在绘制单元格时访问图像,但是当我右键单击时,我需要能够访问图像,以显示和隐藏它。有没有办法做到这一点?

0 个答案:

没有答案