728x90

dataGridView 의 각 Row를 선택할 때 칼럼의 값을 Textbox 에 보여주도록 하려면 어떻게 해야 할까?



나같은 초보자는 아래 코드를 어떻게 만드는지를 모른다.

dataGridView1 의 속성 Event 창에서 더블클릭하면 자동으로 코드를 채울 수 있게 만들어진다.

필요한 코드만 직접 작성하면 된다.


//셀 내용 읽기 1행, 0열  --> 행은 Rows, 열은 Column 이 아니라 Cells 로 표기하네

dataGridView1.Rows[1].Cells[0].Value.ToString();



private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    textBox1.Text = dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString();
    textBox2.Text = dataGridView1.Rows[e.RowIndex].Cells[4].Value.ToString();
    textBox3.Text = dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString();
    textBox4.Text = dataGridView1.Rows[e.RowIndex].Cells[6].Value.ToString();

    if (e.ColumnIndex == 2)  // 3번째 칼럼이 선택되면....
    {
        MessageBox.Show((e.RowIndex + 1) + "  Row  " + (e.ColumnIndex + 1) + "  Column button clicked ");
    }
}



만약, 외국 사이트, 블로그 등에 나온 자료를 보고 사용자 소스코드에 붙여넣기를 한 경우에는

디자이너 소스 파일에는 기록이 안되어 있다. 그러므로 Event 연결을 해줘야 한다.

위의 코드를 보면 CellClick 이라고 보일 것이다.

바로 이 부분을 연결하기 위해서 Shift + F7 키를 눌러서 WindowsForm 화면으로 이동한 다음에

dataGridView1 을 마우스로 선택하고 나서 속성창에서 Event 를 클릭한 다음에 CellClick 이벤트를 찾는다.



이렇게 해주면 연결되어 동작이 된다.


글 쓰려고 테스트한다고 2번을 빈칸으로 지웠더니 CellClick 이벤트 소스 코드가 삭제되어 버렸다.

혹시 이런 증상이 생길지 모르니 소스코드는 EditPlus 같은 텍스트편집기에 복사를 해주는게 좋다.

728x90
블로그 이미지

Link2Me

,