
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!