none
Datagridview Click 이벤트에 대한 값 얻어올 때 속도저하 문제 관련 RRS feed

  • 질문

  • 안녕하세요,

    Datagridview Click 이벤트에 대한 값 얻어올 때 속도저하 문제 관련하여 문의를 드립니다.

    아래쪽 datagridview 에 DB자료를 뿌리고 해당 부분을 마우스로 클릭하면 클릭한 행에 대한 정보를

    위쪽 레이블or 텍스트박스에 표시하는 코드를 만들어 보았습니다.

    *  대략적인 그림 ( 죄송합니다. 이미지를 포함할 수 없다고 나와서 ㅠㅠ)

    ----------------------------------------------------

    이름 :

    전화번호 :                                                                 => 여기에 아래 datagridview 에서

                                                                                    클릭된 행들의 정보를 출력합니다.

    부서 :

    층 :

    =============================

    이름   전화번호  부서  층

    ----------------------------------------------------

    A        1111      가    5

    ----------------------------------------------------

    B        2222       나   6                                                          => datagridview

    -----------------------------------------------------                         

    C        3333      다    7

    ==============================

    헌데, 아래쪽 datagridview 에서 아주 천천히 행을 바꿔가면서 클릭해보면

    정상적으로 위에 부분이 바뀌지만, 조금만 클릭속도를 빠르게 하게 되면

    위에 변경되어야 하는 부분이 따라오지를 못하게 됩니다.

    해당 부분에 대한 소스는 아래와 같이 2가지 방법으로 시도해 보았으나,

    모두 마찬가지로 느렸습니다. 어떻게 해결하는 것이 좋을지 조언을 구해봅니다.

    감사합니다.

    1.

    private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)

    {

    DataGridViewRow row = dataGridView1.Rows[e.RowIndex];

    lbl_name.Text = row.Cells["name"].Value.ToString();
    lbl_phone_num.Text = row.Cells["phone_num"].Value.ToString();
    lbl_part.Text = row.Cells["part"].Value.ToString();
    lbl_floor.Text = row.Cells["floor"].Value.ToString();

    }

    2.

    private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)

    {

    lbl_name.Text = this.dataGridView1.CurrentRow.Cells[0].Value.ToString();
    lbl_phone_num.Text = this.dataGridView1.CurrentRow.Cells[1].Value.ToString();
    lbl_part.Text = this.dataGridView1.CurrentRow.Cells[2].Value.ToString();
    lbl_floor.Text = this.dataGridView1.CurrentRow.Cells[3].Value.ToString();

    }



    • 편집됨 0Hare 2013년 12월 4일 수요일 오전 2:50
    2013년 12월 4일 수요일 오전 2:49