user1647667
user1647667

Reputation: 1309

selecting checkbox inside datagridview c#

i have a dowpdownlist, a button and a checkbox inside the datagridview.

i just only manually created a check box column on the datagridview. (here is the code)

DataGridViewCheckBoxColumn CheckboxColumn = new DataGridViewCheckBoxColumn();
            CheckBox chk = new CheckBox();
            CheckboxColumn.Width = 20;
            DataGrid1.Columns.Add(CheckboxColumn);

here is the procedure.
step 1: the user will choose item on the checkbox.
step 2: the user will choose item on the dropdown.
Step 3: the user will click on the button and it will change the itemname
on the checkbox prior to the item selected on the dropdownlist.

here is my problem after clicking on the button, nothings happen.

here is my code.

private void button1_Click(object sender, EventArgs e)
        {
    int x = 0;
                foreach (DataGridViewRow item in this.DataGrid1.SelectedRows)
                {
                    DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)item.Cells[1];
                    if (chk.Selected)
                    {
                    // codes here
                    }
                    else
                    {
                    //code here
                    }
                }
                x = x + 1;
         }

Upvotes: 0

Views: 7567

Answers (2)

Derek
Derek

Reputation: 8630

* EDITED **

I've tested this and it definitely Works. Copy and paste this into a new project and play with it. It should help you get to where you need to be.

   private void Form1_Load(object sender, EventArgs e)
    {

        DataGridViewCheckBoxColumn checkBox = new DataGridViewCheckBoxColumn(true);
        checkBox.HeaderText = "T/F";
        dataGridView1.Columns.Add(checkBox);

    }

    private void button1_Click(object sender, EventArgs e)
    {
        foreach (DataGridViewRow row in dataGridView1.SelectedRows)
        {

            DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)row.Cells[0];

            if (Convert.ToBoolean(chk.Value) == true)
            {
                MessageBox.Show("Value Is True");
            }

        }
    }

Upvotes: 1

NeverHopeless
NeverHopeless

Reputation: 11233

First thing that I would recommend to call:

DataGrid1.EndEdit();

Since, I have experienced that sometimes input do not appears as expected if this line is missing before retrieving a value of checkbox from the grid column.

So something like this:

private void button1_Click(object sender, EventArgs e)
{
    int x = 0;
    foreach (DataGridViewRow item in this.DataGrid1.SelectedRows)
    {
        DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)item.Cells[1];

        if (chk.Value)
        {
              // codes here for checked condition
        }
        else
        {
              //code here  for UN-checked condition
        }
      }
     x = x + 1;
 }

Upvotes: 0

Related Questions