如何在datagridview c#中检查是否已选中多个复选框

时间:2019-01-02 11:26:19

标签: c# checkbox datagridview

我有一个DataGridview,可以选择多个复选框。但是现在我需要收集选中的行数据并保留它。如何检查选中的行数以及如何保持选中的复选框行数据。

我已经做了很少的代码。但这仅保留一个选定的行数据。 这是我的代码:

DataGridViewCell datacelll = dgvSlsSRsList.CurrentCell;

if (datacelll != null)                   
{                           
    foreach (DataGridViewCheckBoxCell cell in dgvSlsSRsList.SelectedCells)
    {
        cell.Value = true;
        slssrsId = Convert.ToInt32(dgvSlsSRsList.Rows[e.RowIndex].Cells[1].Value);
        slssdpId = Convert.ToInt32(dgvSlsSRsList.Rows[e.RowIndex].Cells[2].Value);
        DueAmount = Convert.ToDecimal(dgvSlsSRsList.Rows[e.RowIndex].Cells[8].Value);
    }
    dgvSlsSRsList.Refresh();                            
}

1 个答案:

答案 0 :(得分:0)

好。我从另一个评论部分获得解决方案。这是我的解决方案-

                List<string> srlist = new List<string>();
                List<string> sdplist = new List<string>();
                List<string> dumamountlist = new List<string>();

                foreach (DataGridViewRow row in this.dgvSlsSRsList.Rows)
                {
                    var cell = row.Cells[e.ColumnIndex] as DataGridViewCheckBoxCell;

                    if (Convert.ToBoolean(cell.Value) == true)
                    {
                        srlist.Add(row.Cells[1].Value.ToString());
                        sdplist.Add(row.Cells[2].Value.ToString());
                        dumamountlist.Add(row.Cells[8].Value.ToString());


                    }
                    else if (cell.State == DataGridViewElementStates.Selected)
                    {
                        srlist.Add(row.Cells[1].Value.ToString());
                        sdplist.Add(row.Cells[2].Value.ToString());
                        dumamountlist.Add(row.Cells[8].Value.ToString());
                    }

                }