본문 바로가기

C# Language

DataGridView에서 선택된 row에 있는 CheckBox 설정하기



위 그림을 보면 선택된 Row에는 모두 CheckBox에 Check가 되어 있습니다.
그리고 선택을 하지 않는 부분은 Check가 되질 않습니다.
이렇게 마우스로 Row를 선택하였을 경우에만 Check가 되도록 하기 위해
구현을 해 보았습니다.

먼저 DataGridView의 이벤트에서 CellClick 이벤트를 활성화 시켜야 됩니다.



private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    int intchange;
    
    try
    {
        if (dataGridView1.CurrentCell != null)
        {
            // 모든 행의 CheckBox값을 False로 설정
            for (int i = 0; i < dataGridView1.RowCount; i++) 
            {
                dataGridView1[6, i].Value = false; // 6은 CheckBox가 있는 열 번호
            }
            // 현재 선택된 행의 CheckBox값을 True로 설정
            for (int i = 0; i < dataGridView1.SelectedRows.Count; i++) 
            {
                //Convert.ToInt32 => string을 int로 변환
                intchange = Convert.ToInt32(dataGridView1.SelectedRows[i].Cells[0].Value.ToString());
                dataGridView1[6, intchange].Value = true;
            }
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}