我需要在单元格标题中显示图像。问题是我正在使用一个包含各种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
}
答案 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;
}
}
希望它会有所帮助。