Удаление первой строки в DataGridView фактически удаляет все строки - PullRequest
0 голосов
/ 09 декабря 2010

Я создаю приложение в C #, Windows Forms.

У меня есть DataGridView, и в нем у меня есть столбец, содержащий Button s (DataGridView Button столбцы).Я создал событие клика On Button, и он вызывает метод, который удаляет строку:

private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e) 
{
    try
    {
        if (e.ColumnIndex == 5)
        {
            if (!dataGridView.Rows[e.RowIndex].IsNewRow)
            {
                dataGridView.Rows.Remove(dataGridView.CurrentRow); // removes current row
            }
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("Error: " + ex.Message);
    }
}

Сначала я добавляю строки, а затем удаляю их, если нужно, если удаляю последнюю строкунет проблем.Проблема возникает, если я пытаюсь удалить первую или любую другую строку, кроме последней.Если - например - я удаляю первую строку, все строки удаляются.Когда я его отлаживал, кажется, что метод повторяется столько раз, сколько строк в моем DataGrid.

Кто-нибудь знает, как можно решить эту проблему?

Ответы [ 2 ]

3 голосов
/ 09 декабря 2010

У вас есть какой-то другой код, который выбирает / устанавливает текущую выбранную строку в DataGridView.

Может быть шанс, что есть какой-то другой код, который фактически отправляет пробел на текущийвыбранной строки, поэтому при удалении строки событие CellClick также запускается в следующей строке.Просто предположение.

Также попробуйте использовать события CellContentClick или CellMouseClick.

0 голосов
/ 09 декабря 2010

изменить: dataGridView.Rows.Remove(dataGridView.CurrentRow); на: dataGridView.Rows.RemoveAt(e.RowIndex);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...