2012-03-15 2 views
0

이 코드는 다른 곳에서는 작동합니다 .. 폼로드, 버튼 클릭 등. 그러나 내 tripsBindingSource_PositionChanged에 추가하면 객체 참조가 객체의 인스턴스로 설정되지 않습니다. 해당 행 인덱스를 가져올 때. 아직 선택된 행이 없다고 가정하고 있지만 폼로드에서 작동하는 이유는 무엇입니까? 그것은 런타임에 내 애플 폭탄을 만들고있다. 이 문제를 해결하려면 어떻게해야합니까? 감사!BindingSource 이벤트를 사용하면 현재 dgv 행의 인덱스를 얻을 수 없습니다.

private void tripsBindingSource_PositionChanged(object sender, EventArgs e) 
{ 
    //get selected row index 
    int index = this.dgvTripGrid.CurrentRow.Index; 
    //get pk of selected row using index 
    string cellValue = dgvTripGrid["pkTrips", index].Value.ToString(); 
    //change pk string to int 
    int pKey = Int32.Parse(cellValue); 
    ... 
} 

답변

1

당신은 행이 먼저 null로 있는지 확인해야 만 null가 아닌 경우, 부하를 할

private void tripsBindingSource_PositionChanged(object sender, EventArgs e) 
{ 
    // something like 
    if(dgvTripGrid.CurrentRow != null) 
    { 
     //get selected row index 
     int index = this.dgvTripGrid.CurrentRow.Index; 
     //get pk of selected row using index 
     string cellValue = dgvTripGrid["pkTrips", index].Value.ToString(); 
     //change pk string to int 
     int pKey = Int32.Parse(cellValue); 
     ... 
    } 
} 
관련 문제