Add Image to C# DataGridView

The DataGridView control, accompanied by its interconnected classes, has been thoughtfully engineered as a highly flexible and extensible system, purpose-built for the seamless presentation and manipulation of tabular data. In addition to its core functionality, the DataGridView control provides the capability to incorporate an Image control within a column, further enhancing the visual representation of data.

Integrating an Image to DataGridView

Integrating an Image control into a column of the DataGridView introduces a specialized column type that extends beyond the standard base class properties. Alongside the conventional attributes, this column type exposes unique Image and ImageLayout properties. These additional properties enable developers to effortlessly assign and manage images specific to the column, providing a consistent visual element that is displayed by default for all cells within that column.

The following C# program shows how to add a Image in column of a DataGridView control.

Full Source C#
using System; using System.Data; using System.Windows.Forms; using System.Data.SqlClient; using System.Drawing; namespace WindowsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { dataGridView1.ColumnCount = 3; dataGridView1.Columns[0].Name = "Product ID"; dataGridView1.Columns[1].Name = "Product Name"; dataGridView1.Columns[2].Name = "Product Price"; string[] row = new string[] { "1", "Product 1", "1000" }; dataGridView1.Rows.Add(row); row = new string[] { "2", "Product 2", "2000" }; dataGridView1.Rows.Add(row); row = new string[] { "3", "Product 3", "3000" }; dataGridView1.Rows.Add(row); row = new string[] { "4", "Product 4", "4000" }; dataGridView1.Rows.Add(row); DataGridViewImageColumn img = new DataGridViewImageColumn(); Image image = Image.FromFile("Image Path"); img.Image = image; dataGridView1.Columns.Add(img); img.HeaderText = "Image"; img.Name = "img"; } } }

By setting the column Image property, developers can effortlessly establish a default image that visually represents the data within the column. This results in a unified and cohesive visual presentation, ensuring that the designated image is readily displayed across all cells within the associated column, reinforcing data interpretation and enhancing the overall user experience.


Using the power of the DataGridView control and its specialized column types, such as the Image column, developers can seamlessly integrate visual elements into their tabular data display, effectively communicating information and enriching the user interface. This tailored approach ensures that the DataGridView remains a comprehensive and versatile solution for presenting and manipulating tabular data, with the ability to incorporate dynamic visual representations that align with specific data-driven requirements.