views:

5692

answers:

2

I've added a checkbox column to a datagridview in my C# form. The function needs to be dynamic - you select a customer and that brings up all of their items that could be serviced, and you select which of them you wish to be serviced this time around.

Anyway, the code will now add a chckbox to the beginning of the DGV. What I need to know is the following:

1) How do I make it so that the whole column is "checked" by default? 2) How can I make sure I'm only getting values from the "checked" rows when I click on a button just below the DGV?

Here's the code to get the column inserted:

DataGridViewCheckBoxColumn doWork = new DataGridViewCheckBoxColumn();
            doWork.HeaderText = "Include Dog";
            doWork.FalseValue = "0";
            doWork.TrueValue = "1";
            dataGridView1.Columns.Insert(0, doWork;

So what next? Any help would be greatly appreciated!

+3  A: 

1) There is no way to do that directly. Once you have your data in the grid, you can loop through the rows and check each box like this:

    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
        row.Cells[CheckBoxColumn1.Name].Value = true;
    }

2) The Click event might look something like this:

    private void button1_Click(object sender, EventArgs e)
    {
        List<DataGridViewRow> rows_with_checked_column = new List<DataGridViewRow>();
        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            if (Convert.ToBoolean(row.Cells[CheckBoxColumn1.Name].Value) == true)
            {
                rows_with_checked_column.Add(row);
            }
        }
        // Do what you want with the check rows
    }
SwDevMan81
Thanks so much! That's really useful, but just one thing... when I get to that point, to get the information from the checked rows, how would I get the information from a specific cell (e.g. the cell value in column 2 of all checked cells)Also... you really seem to know your stuff for C#, any books you can recommend? Thanks.
David Archer
Actually, never mind that, I've found a way to do it. Thanks again for your help!
David Archer
Glad you found it out. As for a book to recommend, I can't say that I know of any for learning C#. I do use the msdn (http://msdn.microsoft.com/en-us/library/ms229335.aspx) website a lot for looking up methods/properties/descriptions/examples/etc, so I would say thats probably the best reference, oh an SO too ;)
SwDevMan81
A: 

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) {

DataGridViewCheckBoxCell ch1 = new DataGridViewCheckBoxCell(); ch1 = (DataGridViewCheckBoxCell)dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0];

if (ch1.Value == null) ch1.Value=false; switch (ch1.Value.ToString()) { case "True": ch1.Value = false; break; case "False": ch1.Value = true; break;

} MessageBox.Show(ch1.Value.ToString()); }

best solution to find if the checkbox in the datagridview is checked or not.. works perfectly want to tell thanks mail at [email protected]

Nazeer