Событие BindingSource не позволит мне получить индекс текущей строки dgv - PullRequest
0 голосов
/ 16 марта 2012

Этот код работает где-то еще .. загрузка формы, нажатие кнопки и т. Д. Но когда я добавляю его в свой tripsBindingSource_PositionChanged, он говорит, что ссылка на объект не установлена ​​на экземпляр объекта, когда он получает выбранный индекс строки. Я предполагаю, что выбранной строки еще нет, но почему она будет работать при загрузке формы, чем? Это делает мое приложение бомбой во время выполнения. Что я могу сделать, чтобы это исправить? Спасибо!

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 Ответ

1 голос
/ 16 марта 2012

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

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);
        ...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...