На DataGridView CellDoubleClick вернуть данные из другой строки - PullRequest
0 голосов
/ 15 апреля 2020

Мой метод:

private void dgvProveedores_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
    {

        _tbProveedorCodigo.Text = dgvProveedores.SelectedCells[0].Value.ToString();
        _tbProveedorNombre.Text = dgvProveedores.SelectedCells[1].Value.ToString();
        _indice.Text = dgvProveedores.SelectedCells[2].Value.ToString();
        _grid.Visible = false;
        this.Close();
    }

Пример строки:

  CODE     Name     index
| 012 | AVIPECUARIA | 3 |

Но возврат:

| 012 | HECTOR JAVIER |214|

ЭТОТ ДАННЫЙ СУЩЕСТВУЕТ С ЭТИМ КОДОМ:

| PM012 | HECTOR JAVIER |214|

Этот код работает на всех БД, которые я тестировал, но я нашел эту проблему в этом.

1 Ответ

0 голосов
/ 15 апреля 2020

Ваш код работает с выбранными ячейками, которые могут вызвать проблему. Попробуйте альтернативное решение и используйте свойство аргумента 'e':

    private void dgvProveedores_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
    {
        if (e.RowIndex == -1) return;
        _tbProveedorCodigo.Text = dgvProveedores.Rows[e.RowIndex].Cells["Codigo"].Value.ToString();
        _tbProveedorNombre.Text = dgvProveedores.Rows[e.RowIndex].Cells["Nombre"].Value.ToString();
        _indice.Text = dgvProveedores.Rows[e.RowIndex].Cells["Indice"].Value.ToString();
    }

Я использовал имена столбцов в скобках Cells. Вы должны использовать имена ваших столбцов. Если в ячейках сетки есть нулевые значения, это следует правильно обработать, чтобы избежать исключения нулевых ссылок.

...