How To Add Custom ComboBox Column to DataGridView in Windows Forms
Friends,
In this post we will see how can we add a custom ComboBox column to DataGridView in Windows forms. This scenario generally comes when we need to edit a row in the DataGridView and allow users to select value for a cell from a predefined set of values. This post will help you achieve the same.
This post assumes that the name of the DataGridView is gridRecords and GetDataFromDatabase() function returns a DataTable with data to be assigned to the DataGridView.
private void LoadGrid()
{
gridRecords.Columns.Clear();
gridRecords.DataSource = GetDataFromDatabase();
if(gridRecords.Columns.Count > 0) // Add Checkbox column only when records are present.
AddComboBoxColumn();
}
private void AddComboBoxColumn()
{
DataGridViewComboBoxColumn dgcm = new DataGridViewComboBoxColumn();
dgcm.HeaderText = "Employee";
DataTable dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns.Add("Name");
for(int i=1;i<5;i++)
{
DataRow dr = dt.NewRow();
dr["ID"] = i;
dr["Name"] = "Employee " + i;
dt.Rows.Add(dr);
}
dgcm.ValueMember = "ID";
dgcm.DisplayMember = "Name";
dgcm.DataSource = dt;
gridRecords.Columns.Add(dgcm);
}
In the above code, we set the DataSource of DataGridView control with the datatable. Once set, we add a new column named “Employee” to the DataGridView at the end of the grid.
Hope you like this! Keep learning and sharing! Cheers!