Практическое руководство. Считывание и установка значения текущей ячейки элемента управления DataGridView в Windows Forms
Для взаимодействия с DataGridView часто требуется программно определить, какая ячейка активна в данный момент. Также может потребоваться изменить текущую ячейку. Эти задачи можно выполнить с помощью CurrentCell Свойства.
Нельзя задать текущую ячейку в строке или столбце, Visible для false свойства которого задано значение.
В зависимости от DataGridView режима выбора элемента управления изменение текущей ячейки может изменить выбор. дополнительные сведения см. в разделе режимы выделения в элементе управления Windows Forms DataGridView.
Получение текущей ячейки программным способом
DataGridViewИспользуйте свойство элемента управления CurrentCell .
Задание текущей ячейки программным способом
CurrentCellЗадайте свойство DataGridView элемента управления. В следующем примере кода текущей ячейке присваивается значение строка 0, столбец 1.
Компиляция кода
Для этого примера требуются:
Button элементы управления с именами getCurrentCellButton и setCurrentCellButton . В Visual C# события для каждой кнопки необходимо прикрепить Click к соответствующему обработчику событий в примере кода.
Все о DataGridView. Учебник
Это опять создаст ситуацию, когда все колонки привязаны. Но на этот раз их три:
Рисунок 13.
Допустим, свободные колонки у нас есть. А как теперь работать с их ячейками? Другими словами – как добраться до конкретной ячейки grid-а и ее содержимого? Для этого нужно обратиться к индексатору Rows [], получить ссылку на конкретную строку ( DataGridViewRow ), а уже в ней, обратясь к индексатору Cells [] – ссылку на интересующую нас ячейку. Единственное, что надо учесть – ссылка будет иметь тип DataGridViewCell , а мы, чаще всего, будем заинтересованы в функциональности, присущей не любой ячейке вообще, а ячейке именно того или иного типа. Поэтому извлечение ячейки из коллекции практически всегда завершается приведением типа. Вернитесь к разделу "Добавляем строки" и еще раз посмотрите последний фрагмент кода. В нем мы создали grid 3х3, в котором все ячейки текстовые, за исключением ячейки с индексом 1 в строке с индексом 2 (2:1, далее для краткости будет использоваться такая запись). Указанная ячейка имеет тип DataGridViewComboBoxCell . Чтобы заполнить ее список четырьмя элементами, можно написать следующее:
Упомянутое приведение типов в этом примере выделено красным.
Доступ к значению ячейки в общем случае осуществляется через свойство Value . Тип этого свойства – object . Реальный тип значения полностью зависит от типа ячейки. Например, в предпоследнем фрагменте раздела "Добавляем строчки" кода мы работали с ячейкой типа DataGridViewCheckBoxCell и присваивали этому свойству значения типа bool . А DataGridViewTextBoxCell будет работать, что вполне ожидаемо, со строками. Вот как можно занести значение " Great !" в четвертую строку колонки " FreeForStart " из приведенного чуть выше примера:
Как обратиться к ячейке datagridview в c
DataGridView — стандартный GUI компонент для отображения и редактирования таблиц. Здесь коротко рассмотрены основные моменты работы с этим классом.
Перекиньте стандартным способом в форму компонент DataGridView.

Источник данных при создании можно не указывать, так как DataGridView позволяет хранить данные внутри себя и добавлять/удалять их на лету, во время выполнения (runtime). После этого редактором свойств настройте поведение по умолчанию нового экземпляра DataGridView. Я обычно меняю свойства AllowUserToAddRows на false, AllowUserToDeleteRows на false, ReadOnly на true. Можно также переименовать экземпляр из dataGridView1 в что-нибудь более осмысленное, подходящее для Вашей программы.
Добавление строк и столбцов. Столбцы и строки можно добавлять во время выполнения программы (подробнее см. [1]). Пример добавления строк:
Однако если назначение и структура таблицы (количество и наименование столбцов) известны заранее, то можно редактором свойств добавить столбцы. Для этого редактируют свойство Columns.

Стиль текста заголовка. Пример, как можно установить жирный шрифт в заголовке таблицы:
Как поменять цвет фона заголовка и цвет шрифта:
Работа с ячейками. Обращение к ячейкам DataGridView довольно простое. Индексация столбцов (Columns) и строк (Rows) идет относительно нуля. Столбец с индексом 0 самый левый, и строка с индексом 0 самая верхняя. Количество строк можно получить через свойство RowCount. Добавляются строки методом Удаляются строки методом Rows->Add(), удаляются методом Rows->RemoveAt(номер строки). Пример добавления и удаления строк:
Более простой способ удаления строк:
Текущая строка. Узнать номер текущей строки можно через HitTestInfo->RowIndex:
Установить (поменять) текущую строку можно через свойство CurrentCell (в примере устанавливаем третью текущую строку):
Текущая строка помечена в таблице треугольничком:

Вид таблицы после отмены выделения текущей ячейки:

Изменение данных в ячейках. Менять данные в ячейках таблицы можно только тогда, когда существуют соответствующий столбец и соответствующая строка, иначе произойдет ошибка выполнения («System.ArgumentOutOfRangeException» произошло в mscorlib.dll Дополнительные сведения: Индекс за пределами диапазона. Индекс должен быть положительным числом, a его размер не должен превышать размер коллекции.). После добавления строки методом Add все значения в ячейках добавленной строки будут пустые. К ячейке таблицы можно обращаться по номеру столбца и номеру строки через свойство Value.
Пример добавления строк и заполнения таблицы:
Стиль, цвет текста. Внешний вид текста в ячейке можно менять через свойство Style. Пример изменения цвета нужной ячейки на C#:

Пример изменения шрифта ячейки на жирный:
Как обращаться к столбцам не по их индексу, а по имени? Нумерация строк и столбцов начинается с нуля, и когда нам нужно обратиться к конкретной ячейке строки, то это можно сделать через числовой индекс: Rows[индексстроки].Cells[индексстолбца]. Однако есть удобная возможность получить индекс столбца по имени типа столбца:
В этом примере УровеньУст и УровеньСчит — типы столбцов, которые были установлены во время компиляции визуальным редактированием свойства Columns таблицы dgv. Используется свойство Index этих типов.

Клик на заголовке строки. Обработка клика на заголовке строки на C#:
Как удалить последнюю пустую строку?

Ответ: после манипуляции со строками и добавления новых строк установите в false свойство AllowUserToAddRows :