четверг, 7 февраля 2013 г.

Как отображать изображение в заголовке столбца DataGridView

Один из способов сделать это использование события CellsPainting.  Чтобы нарисовать изображение для конкретной ячейки заголовка.


this.headerImages - ImageList изображения для столбцов


void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
    if (e.ColumnIndex != -1 && e.RowIndex == -1)
    {
        e.PaintBackground(e.ClipBounds, false);
        Point pt=e.CellBounds.Location;
        int offset=(e.CellBounds.Width-this.headerImages.ImageSize.Width)/2;
        pt.X += offset;
        pt.Y += 1;
        this.images.Draw(e.Graphics, pt, e.ColumnIndex);
// Для случая, если не хранить изображения в ImageList, e.Graphics.DrawImage (image, Pt);        e.Handled = true;
    }
}