我有一个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();
}
答案 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());
}
}