在单元格标题中显示图像

时间:2013-05-06 10:00:02

标签: c# image datagridview

我需要在单元格标题中显示图像。问题是我正在使用一个包含各种GUI方法的类,我无法弄清楚如何在我的类中使用cellPaint事件。有没有其他方法可以从我的班级更新它,就像我可以更新单元格值一样,或者它必须是cellPaint事件?谢谢!

编辑:

class GUI {
   public void FixGridCells(DataGridView grid){

   }

   public void AssignCellImages(DataGridView grid){
      grid.Column[0].Header = myImage; // <-- This is what I need
   }
}

// MyForm.cs

MyForm_Load(){
   GUI gui = new GUI();
   gui.FixGridSize(myGrid);
   gui.AssignCellImages(myGrid); // <-- I need to call it like this
}

1 个答案:

答案 0 :(得分:0)

首先,我们需要从图像文件中创建一个Image对象。

Image IconImg = Image.FromFile("C:\\logo.jpg");

之后使用Datagridview Cell绘制事件。

 private void DataGridView1_CellPainting(System.Object sender, System.Windows.Forms.DataGridViewCellPaintingEventArgs e)
    {
        if (e.RowIndex == -1 && e.ColumnIndex == DataGridView1.Columns.Count - 1)
        {
            e.Paint(e.CellBounds, DataGridViewPaintParts.All & !DataGridViewPaintParts.ContentForeground);
            e.Graphics.DrawImage(IconImg, e.CellBounds);
            e.Handled = true;
        }
    }

希望它会有所帮助。