2012-01-02 3 views
1

아래 코드에서 datagridview1_RowsAdded 이벤트 처리기의 코드를 통해 선택 후 변경되는 datagridview1_SelectionChanged 이벤트가 발생하면 CurrentRow 속성은 null입니다. 하지만 난 그냥 datagridview1_RowsAdded 처리기에 그것을 설정하고 거기에 null이 아닙니다.DataGridView SelectionChanged 이벤트가 실행되지 않는 이유는 무엇입니까?

그러나 두 줄을 datagridview1_RowsAdded 처리기에 주석 처리하고 마우스를 클릭하여 행을 선택하면 프로그램이 올바르게 작동합니다. 아무도 왜 이것이 일어나고 있는지 말해 줄 수 있습니까?

여기 내 코드입니다 : 당신의 RowsAdded 방법에서

private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) 
{ 
    dataGridView1.CurrentCell = dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[1]; 
    dataGridView1.CurrentCell.Selected = true; 
} 

private void dataGridView1_SelectionChanged(object sender, EventArgs e) 
{ 
    if (dataGridView1.CurrentRow != null) 
    { 
     if (dataGridView1.CurrentRow.Index != -1) 
     { 
      dataGridView2.Enabled = true; 
      dataGridView3.Enabled = true; 
      dataGridView4.Enabled = true; 
     } 
     else 
     { 
      dataGridView2.Enabled = false; 
      dataGridView3.Enabled = false; 
      dataGridView4.Enabled = false; 
     } 
    } 
    else 
    { 
     dataGridView2.Enabled = false; 
     dataGridView3.Enabled = false; 
     dataGridView4.Enabled = false; 
    } 
} 
+0

죄송합니다, 그것은 첫 번째 줄 이후 약간의 오해의 소지가 – armin

답변

1

, 당신은 현재 셀하지만 현재의 행을 선택했습니다. 이와 함께 현재의 행을 선택할 수 있습니다

질문 제목
dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Selected = true; 
+0

작동하지 않는 원인의 IT가 다른 라인을 실행하기 전에 selection_changed 이벤트로 이동 rows_added에. – armin

+0

그냥 분명히 : 명시 적 선택 후 CurrentRow 속성이 여전히 null이라는 말입니까? 셀을 선택하기 전에 행을 선택하십시오. – Abbas

관련 문제