26/02/2014 by Nitesh

How to Add Custom Checkbox Column to DataGridView in Windows Forms


In this post we will see how we can add a custom Checkbox column to an existing DataGridView in windows forms. Generally, when you assign a data source to the DataGridView and the data source contains a “bit” column or “bool” column, DataGridView automatically converts it into a Checkbox column. However, at times we need to provide an extra checkbox column to the end-user so that they can select/un-select records using the same. This post will help you add a custom checkbox to your DataGridView.

This post assumes the name of the DataGridView control as gridRecords and LoadGrid() function assigns the data source to the DataGridView.

        private void LoadGrid()
            gridRecords.DataSource = GetDataFromDatabase();
            if(gridRecords.Columns.Count > 0) // Add Checkbox column only when records are present.
        private void AddCheckBoxColumn()
            DataGridViewCheckBoxColumn doWork = new DataGridViewCheckBoxColumn();
            doWork.Name = "Select";
            doWork.HeaderText = "Select";
            doWork.FalseValue = 0;
            doWork.TrueValue = 1;
            gridRecords.Columns.Insert(0, doWork);

In the above code, we 1st set the DataSource of datagridview to the data that has been brought from DB. Before assigning the DataSource, we ensure that we clear the column collection of the DataGridView so that the checkbox column is not added multiple times. Once the DataSource is set, we check for column count and call a function that adds the custom checkbox to the beginning of the DataGridView.

Hope you like this post.