Sunday, September 29, 2013

How to Put CheckBoxes Dynamically in Data GridView of Window Application

Step 1: Write the Following code in the binding event of data GridView
 

DataGridViewCheckBoxColumn chbx_Column = new DataGridViewCheckBoxColumn();
chbx_Column.Name = "chk_column";
chbx_Column.HeaderText = "";
chbx_Column.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
dataGridView1.Columns.Add(chbx_Column);

 //Select cell where checkbox to be display
Rectangle rect = this.dataGridView1.GetCellDisplayRectangle(0, -1, true);            //0 Column index -1(header row) is row index

//Mention size of the checkbox
chkbox.Size = new Size(18, 18);
//set position of header checkbox where to places
rect.Offset(40, 2);
 chkbox.Location = rect.Location;

chkbox.CheckedChanged += chkBoxChange;

//Add CheckBox control to datagridView
this.dataGridView1.Controls.Add(chkbox);

// for adding combo box in header
Rectangle rect = this.dataGridView1.GetCellDisplayRectangle(0, -1, true);            //0 Column index -1(header row) is row index
ComboBox c = new ComboBox();
c.BackColor = Color.FromArgb(246, 246, 246);
c.Size = new Size(100,15);
rect.Offset(0, 0);
c.Location = rect.Location;
this.dataGridView1.Controls.Add(c);
Step 2: For individual row ,write event code. This is just to uncheck the checked row and check the unchecked row
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
     ifConvert.ToBoolean(dataGridView1.Rows[e.RowIndex].Cells["chk_column"].Value)== true)
           
     {
         dataGridView1.Rows[e.RowIndex].Cells["chk_column"].Value =false;
     } 
     else     {
        dataGridView1.Rows[e.RowIndex].Cells["chk_column"].Value = true;
     }
}

No comments:

Post a Comment