2012-03-15 3 views
0

Этот код работает где-нибудь еще. Загрузка формы, нажатие кнопки и т. Д. Но когда я добавляю его в мои поездкиBindingSource_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

Вы должны проверить, если строка является нулевым первым, а затем только сделать свой груз, если он не является нулевым

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); 
     ... 
    } 
} 
Смежные вопросы