0

我需要在单元格标题中显示图像。问题是我正在使用一个包含各种 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
}
4

1 回答 1

0

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

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

之后使用 Datagridview 单元格绘画事件。

 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;
        }
    }

希望它会有所帮助。

于 2013-05-06T10:46:14.477 回答