Перейти к содержимому

Datagridview c как очистить

  • автор:

Data Grid View. Data Grid View Control Collection. Clear Method

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Removes all controls from the DataGridView.

public: override void Clear();
public override void Clear ();
override this.Clear : unit -> unit
Public Overrides Sub Clear ()

Remarks

The Clear method removes all controls from the DataGridView, except the scroll bars and the editing control.

Data Grid View. Clear Selection Метод

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Отменяет выделение ячеек, выбранных в данный момент.

Перегрузки

Отменяет выбор всех выделенных в данный момент ячеек, за исключением одной указанной ячейки, при необходимости выделяя указанную ячейку.

Отменяет текущее выделение посредством снятия выделения всех выбранных ячеек.

ClearSelection(Int32, Int32, Boolean)

Отменяет выбор всех выделенных в данный момент ячеек, за исключением одной указанной ячейки, при необходимости выделяя указанную ячейку.

protected: void ClearSelection(int columnIndexException, int rowIndexException, bool selectExceptionElement);
protected void ClearSelection (int columnIndexException, int rowIndexException, bool selectExceptionElement);
member this.ClearSelection : int * int * bool -> unit
Protected Sub ClearSelection (columnIndexException As Integer, rowIndexException As Integer, selectExceptionElement As Boolean)
Параметры

columnIndexException Int32

Исключаемый индекс столбца.

rowIndexException Int32

Исключаемый индекс строки.

selectExceptionElement Boolean

Значение true , чтобы выбрать исключенную ячейку, строку или столбец; значение false , чтобы сохранить их исходное состояние.

Исключения

columnIndexException больше наибольшего индекса столбца.

columnIndexException меньше –1, если SelectionMode — FullRowSelect; в противном случае columnIndexException меньше 0.

rowIndexException больше наибольшего индекса строки.

rowIndexException меньше –1, если SelectionMode — FullColumnSelect; в противном случае rowIndexException меньше 0.

Комментарии

Значение rowIndexException -1 представляет заголовок столбца, а columnIndexException значение -1 — заголовок строки.

Этот метод полезен для очистки текущего выделения без отмены выделения ячейки, строки или столбца, указанных индексами исключений.

SelectionMode Если значение свойства позволяет выбирать отдельные ячейки, этот метод задает свойству Selected false каждой ячейки значение , за исключением ячейки в указанной строке и столбце. SelectionMode Если значение свойства допускает полный выбор строк или столбцов, этот метод также задает свойству Selected false каждой строки или столбца значение , за исключением строки или столбца, содержащих указанную ячейку.

Исключенные ячейки, строки или столбца могут находиться в выбранном состоянии при вызове этого метода. Этот метод выбирает его, если selectExceptionElement параметр имеет true значение . В зависимости от режима выбора в результате также может быть выбрана вся строка или столбец.

См. также раздел

  • SelectionMode
  • Selected
  • Selected
  • элемент управления DataGridView (Windows Forms)

Очистка DataGridView или удаление всех записей

Сейчас разрабатываю приложение, которое работает с базой данных и производит вывод информации в элемент DataGridView . И на одном из этапов разработки мне понадобилось очистить весь DataGridView. Вроде бы элементарная задача, однако решить её первым возникшим у меня в голове способом мне не удалось.

Начнем с того, что метод Clear() не работает.

 dataGridView2.Rows.Clear(); 

Тогда на помощь приходит цикл:

 int rowsCount = dataGridView2.Rows.Count; for (int i = 0; i
 while (dataGridView2.Rows.Count !== 0)

Производим удаление последней записи до тех пор, пока количество записей не будет равно нулю.

Как подсказали в комментариях, происходило это потому, что вероятно был биндинг с DataSource .
В таком случае стоит попробовать следующий вариант:

 dataGridView2.DataSource = new object(); 

Но сейчас я бы предпочел получить BindingSource и очистить его.

 dataGridView2.DataSource.Clear(); 

Вот так нужно очищать DataGridView, если метод Clear() не срабатывает. Вот такой своеобразный клининг получился.

Платное бесплатно. Выпуск 5
HTML с нуля. Лекция 2

Stas Kuryan

IT entrepreneur / Product Owner / Engineer — Готов к худшему, в надежде на лучшее.

Это также Вам может понравиться

Особенность циклов for в JavaScript
Как массово проверить тИЦ сайтов
Программа для распознавания букв на C#

10 комментариев

Так наверное проще будет)
[csharp]dataGridView2.Rows.Clear[/csharp]
Stafox Автор
Согласен. Только в моём случае метод Clear() не сработал.
[csharp]dataGridView1.Rows.Count = 0;[/csharp]

dataGridView1.Rows.Count = 0

Сount — только на чтение
На DataGrid прицеплен DataSource?
Stafox Автор

А если данные через DataSource, тогда .Rows.Clear() не поможет.
Тут нужно сделать вакуум в DataSource:
dataGridView1.DataSource = new object();

Не делал отладку, я вижу?

for (int i = 0; i < dataGridView2.Rows.Count; i++)

При каждом входе в цикл проверяется Count. Раз вы удаляете одну строку в каждом шаге цикла, то Count будет каждый раз уменьшаться. У вас i завязан на текущее кол-во строк. Поэтому и удаляется только половина.
1) i=0; Count=4;
2) i=1; Count=3;
3) i=2; Count=2;//И тут вы неожиданно выходите из цикла, потому что отладкой пользоваться не умеете.
Если бы вы сначала запомнили где-то Count, а потом сравнивали i с запомненным, то все было бы норм.

Stafox Автор

Да. Все верно. Проблема с этим. Вы просто молодец, что заметили проблему в статье 2011 года моих университетских времен ��
Основной посыл статьи в том, что метод clear ничерта не работал:)

Как удалить строку из DataGridView, что бы после рефреша строка с таким ID больше не появлялась в списке?

Уточните вопрос. Напишите, как данные попадают в DataGridView. Они берутся из БД? Сделана привязка (binding)?

14 ноя 2015 в 18:08

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

если удалить все то так:

dataGridView1.Rows.Clear(); dataGridView1.Refresh(); 

если конкретную строчку то надо знать ее индекс

dataGridView1.Rows.RemoveAt(индекс строки); dataGridView1.Refresh(); 

можно удалить и имея объект row

dataGridView1.Rows.Remove(row); dataGridView1.Refresh(); 

Отслеживать
ответ дан 13 ноя 2015 в 11:02
2,508 2 2 золотых знака 12 12 серебряных знаков 25 25 бронзовых знаков

после такого удаления когда снова запускаю программу удаленная строка снова появляется,нужно что бы не появился

13 ноя 2015 в 16:37

дополнительно вам надо ее еще и из базы удалить. Необходимо знать уникальный идентификатор записи в базе (обычно Id), выполнить запрос на удаление

13 ноя 2015 в 16:39

datagridview.databind(); 

вставляешь в любой серверный обработчик

Отслеживать
51.4k 86 86 золотых знаков 267 267 серебряных знаков 505 505 бронзовых знаков
ответ дан 13 ноя 2015 в 11:50
one__for__one one__for__one
13 3 3 бронзовых знака
а по конкретнее?
13 ноя 2015 в 16:38
Постарайтесь писать более развернутые ответы. Поясните, на чем основано ваше утверждение?
14 ноя 2015 в 7:34

 for (int i = 0; i < arr.Length; i++) < for (int j = 0; j < arr.Length; j = j++) < dataGridView2.Rows[i].Cells[j].Value = null; >> 

Отслеживать
ответ дан 7 мая 2023 в 0:29
Алберт Скоростяк Алберт Скоростяк
1 1 1 бронзовый знак

  • c#
  • winforms
  • datagridview
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *