Удаление строки в представлении сетки данных при нажатии кнопки - PullRequest
0 голосов
/ 05 сентября 2011

У меня есть form1 и form2 ..

form1 : у меня есть сетевое представление со столбцом кнопки.Когда я нажимаю кнопку ячейки для любой строки, соответствующие значения строки будут перенесены в форму form2.Это работало нормально.

Форма 2 : используя сеттеры и геттеры, я получил значения из form1, и я представляю значения в текстовых полях в форме 2, и это было прекрасно.

У меня есть флажок в форме 2. Когда я нажимаю на флажок, мне нужно удалить строку в представлении таблицы данных в форме 1 (значения строк которой передаются в форму 2, когда я нажимаю на ячейку кнопки.строка будет удалена из представления таблицы данных в форме 1).

Как это исправить?

Ответы [ 3 ]

5 голосов
/ 05 сентября 2011

Когда вы передаете данные от Form1 до Form2, также передаете индекс строки. Это поможет вам легко удалить строку.

Либо пометьте DataGridView в Form1 public, либо передайте его в качестве параметра конструктора в Form2, а затем вызовите DataGridView1.Rows.RemoveAt(rowIndex);, чтобы удалить строку с индексом, указанным в rowIndex.

3 голосов
/ 05 сентября 2011

Если вы знаете, как удалить запись из таблицы в той же форме, это легко.

Вы можете выполнить те же действия, что и в ответе на вопрос переполнения стека Обновление вида сетки в одной форме .

В качестве аргументов события вы можете передать идентификатор записи.

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

DataGridView1.Rows.RemoveAt(deleteIndex);

Но если вы поделились источником данных и удалили его из формы 2, вам необходимо снова связать данные, чтобы удалить их из таблицы. (См. Как: реализовать уведомление об изменении свойства о том, как обновить сетку.)

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

1 голос
/ 07 мая 2015
foreach (DataGridViewRow item in this.dataGridView1.SelectedRows)
{
  dataGridView1.Rows.RemoveAt(item.Index);
}
...