Настройка цветов DataGridView
Немаловажную роль для комфорта работы с приложением играет цветовая гамма таблиц, отображаемых элементом управления DataGridView. Приятные цвета способствуют повышению производительности труда. Темные темы для DataGridView снижают нагрузку на зрение при длительной работе с приложением управления баз данных. Создавая программы необходимо учитывать индивидуальные цветовые предпочтения разных пользователей.
Цвета необходимы также для акцентирования внимания на редактируемой части таблицы. В процессе работы с визуализированными таблицами базы данных может потребоваться выделение отдельным цветом любого компонента DataGridView: строки, столбца, ячейки и других составляющих. Исходник приложения содержит один из способов создания цветовой гаммы таблиц данных, с возможностями выделения любой строки, столбца или ячейки. Пример построен на программе управления базой данных с помощью DataGridView.
Цветовые компоненты DataGridView
Элемент визуального отображения таблиц в своем составе содержит внушительный список стилей-компонентов, каждый из которых может хранить информацию о своём цвете. Все стили относятся к классу DataGridViewCellStyle.
- DataGridView.BackgroundColor — цвет фона элемента, когда высота таблицы с данными меньше высоты самого элемента DataGridView.
- DataGridView.ForeColor — цвет шрифта ячеек таблицы
- DataGridView.GridColor — цвет линий таблицы
- DataGridView.DefaultCellStyle — цвет и другие настройки вида ячеек таблицы. Самый «слабый» стиль, настройки стилей строк, столбцов и ячеек переопределяют данное свойство.
- DataGridView.RowsDefaultCellStyle — цвет строк, переопределяет значения DataGridView.DefaultCellStyle.
- DataGridView.AlternatingRowsDefaultCellStyle — цвет нечетных строк таблицы. Переопределяет все стили, кроме DataGridViewRow.DefaultCellStyle и DataGridViewCell.Style
- DataGridViewColumn.DefaultCellStyle — цвет ячеек столбца. Переопределяется всеми стилями, кроме DataGridView.DefaultCellStyle.
- DataGridViewRow.DefaultCellStyle — цвет строки, хранит свои настройки независимо от родительского DataGridView. Переопределяет все стили, кроме DataGridViewCell.Style.
- DataGridViewCell.Style — цвет ячейки, переопределяет все стили.
- DataGridView.ColumnHeadersDefaultCellStyle — цвет заголовков столбцов, при DataGridView.EnableHeadersVisualStyles = false.
- DataGridView.RowHeadersDefaultCellStyle — цвет заголовков строк, при DataGridView.EnableHeadersVisualStyles = false.
Цвета заголовков столбцов и строк
Заголовки строк и столбцов обычно выделяются более темным цветом, чем ячейки. Если свойство DataGridView.EnableHeadersVisualStyles=true — для заголовков используются цвета текущей темы операционной системы. Чтобы раскрасить заголовки таблицы элемента DataGridView в собственные цвета, необходимо отключить визуальные стили: DataGridView.EnableHeadersVisualStyles=false .
Для примера показан код метода зелёной темы:
public void GreenStyle() < // Предварительный сброс цветов предыдущей темы. ResetColors(); ResetFormColor(); // === Настройка стиля формы === _menustrip.BackColor = Color.FromArgb(152, 230, 152); _menustrip.ForeColor = Color.Black; _form.BackColor = Color.FromArgb(30, 123, 30); _form.ForeColor = Color.White; foreach (GroupBox grp in _gbxs) < grp.ForeColor = Color.White; >// === Настройка стиля таблиц элементов DataGridView === foreach (DataGridView dgv in _dgvs) < // Цветовая гамма для выделения ячеек. dgv.DefaultCellStyle.SelectionBackColor = Color.FromArgb(0, 128, 255); dgv.DefaultCellStyle.SelectionForeColor = Color.White; // Цвета ячеек по умолчанию. dgv.DefaultCellStyle.BackColor = Color.White; dgv.DefaultCellStyle.ForeColor = Color.Black; // Цвета нечетных строк. dgv.AlternatingRowsDefaultCellStyle.BackColor = Color.FromArgb(174, 239, 174); dgv.AlternatingRowsDefaultCellStyle.ForeColor = Color.Black; // Окраска в одинаковый цвет заголовок столбцов и строк. dgv.ColumnHeadersDefaultCellStyle.BackColor = dgv.RowHeadersDefaultCellStyle.BackColor = Color.FromArgb(20, 82, 20); dgv.ColumnHeadersDefaultCellStyle.ForeColor = dgv.RowHeadersDefaultCellStyle.ForeColor = Color.White; // Фоновый цвет самого DataGridView dgv.BackgroundColor = Color.FromArgb(10, 41, 10); // Временно сбрасываем выделения всех ячеек. dgv.ClearSelection(); >>
Чередование цветов строк
Облегчает восприятие данных в таблицах методика чередования цветов строк. Данный способ существенно повышает концентрацию внимания глаз на выбранной строке. В элементе отображения таблиц DataGridView Windows Forms уже заложена возможность автоматического окрашивания нечетных строк. Для этого достаточно только определить свойство альтернативного стиля — AlternatingRowsDefaultCellStyle, остальное берёт на себя внутренняя логика элемента отображения таблиц.
Определение альтернативного цвета нечетных строк неэффективно при установленных стилях строк DataGridViewRow.DefaultCellStyle или ячеек DataGridViewCell.Style. Применение чередование цветов строк показано анимационной картинкой интерфейса приложения.
Определение сочетания цвета фона и шрифта для нечетных строк таблицы:
// Цвета нечетных строк. dgv.AlternatingRowsDefaultCellStyle.BackColor = Color.FromArgb(174, 239, 174); dgv.AlternatingRowsDefaultCellStyle.ForeColor = Color.Black;
Выделение столбца цветом
Для выделения выбранного столбца одним цветом используется экземпляр класса DataGridViewColumn входящий в состав коллекции столбцов DataGridView.Columns. При назначении стиля столбцов необходимо учитывать, что DataGridViewRow.DefaultCellStyle не может переопределить стили AlternatingRowsDefaultCellStyle, DataGridViewRow.DefaultCellStyle, DataGridViewCell.Style. Посмотреть окрашенные столбцы можно в анимации цветовых стилей приложения вначале страницы.
Метод окрашивания в разные цвета всех столбцов таблицы:
public void ColumnStyle() < // Предварительный сброс цветов. ResetColors(); // Гамма цветов для столбцов. Color[] colors = < Color.LightCoral, Color.LightGreen, Color.LightBlue, Color.Yellow, Color.Orange, Color.Aqua >; foreach (DataGridView dgv in _dgvs) < int count = 0; foreach (DataGridViewColumn column in dgv.Columns) < // Каждый столбец окрашивается в свой цвет. column.DefaultCellStyle.BackColor = colors[count]; count++; >// Сброс выделения для рассматривания цветов. dgv.ClearSelection(); > >
Цветные строки DataGridView
Строки окрашиваются подобно столбцам: коллекция DataGridView.Rows содержит ссылки на все строки отображаемой таблицы в виде экземпляров класса DataGridViewRow. Каждый экземпляр имеет собственный стиль DefaultCellStyle, благодаря этому можно окрасить фон любой строки в индивидуальный цвет.
Метод создания разноцветных строк:
public void RowStyle() < // Сброс цветовых настроек к по умолчанию. ResetColors(); Color[] colors = < Color.LightCoral, Color.LightGreen, Color.LightBlue, Color.Yellow, Color.Orange, Color.Aqua >; foreach (DataGridView dgv in _dgvs) < // Счётчик цветов. int count = 0; foreach (DataGridViewRow row in dgv.Rows) < // Каждая строка в свой цвет. row.DefaultCellStyle.BackColor = colors[count]; _ = count < 5 ? count++ : count = 0; >dgv.ClearSelection(); > >
Назначение цвета ячейке таблицы
Ячейками элемента управления DataGridView владеют строки коллекции DataGridView.Rows. В свою очередь отдельная строка имеет коллекцию ячеек DataGridViewRow.Cells. Отдельную ячейку представляет класс DataGridViewCell, имеющий в своём составе свойство Style типа DataGridViewCellStyle.
DataGridViewCell.Style — самый «сильный» стиль и переопределяет все стили-компоненты в составе DataGridView. Если ячейке назначить цвет, то перекрасить его не сможет ни один стиль.
Метод закраски ячеек разными цветами в шахматном порядке. Результат наглядно показывает анимация цветовых стилей выше.
public void CellStyle() < ResetColors(); Color[] colors = < Color.LightCoral, Color.LightGreen, Color.LightBlue, Color.Yellow, Color.Orange, Color.Aqua >; foreach (DataGridView dgv in _dgvs) < foreach (DataGridViewRow row in dgv.Rows) < int count = 0; foreach (DataGridViewCell cell in row.Cells) < cell.Style.BackColor = colors[count]; _ = count < colors.Length - 1 ? count++ : count = 0; >Array.Reverse(colors); > dgv.ClearSelection(); > >
Сброс всех стилей к по умолчанию
Стили DataGridView имеют разные веса и могут переопределять другие назначенные стили. Например, определение DataGridViewCell.Style скрывает настройки всех других стилей. При создании приложения с настройками различных цветовых тем необходимо предусмотреть создание метода сброса всех стилей перед назначением нового.
Сброс стилей можно осуществить несколькими способами, в приложении созданы 3 метода сброса стилей. Два из них сбрасывают цветовые настройки теме операционной системы, третий метод необходим для возвращения к собственному стилю.
Первый способ предусматривает обнуление стилей, например: column.DefaultCellStyle = null . В таком случае в объекте DataGridView заново пересоздаются стили для текущей темы операционной системы. Сбрасываются все параметры: цвет фона, настройки шрифта и другие. Данный способ наиболее эффективный и правильный для восстановления вида элементов datGridView к настройке по умолчанию. Данный способ работает в приложении при значении глобальной Global.DefaultFormColors = 0 .
Второй способ предполагает создание новых объектов стилей без настроек и присвоение их соответствующим стилям. Настройки по умолчанию новых объектов стилей могут отличаться от настроек элементов, которые были созданы при запуске приложения. Некоторый эффект несовпадения стилей новых объектов и тех которые создались при запуске приложения можно увидеть при нажатии кнопки меню default, выбрав значение глобальной переменной Global.DefaultFormColors = 1 .
Сброс установленных стилей к теме по умолчанию установленной операционной системой:
// Первый способ private void DefaultStyle0() < ResetFormColor(); foreach (DataGridView dgv in _dgvs) < DataGridView dataGridView = new(); // Не может быть null dgv.BackgroundColor = dataGridView.BackgroundColor; // Обнуление стилей, после этого // они пересоздаются автоматически. dgv.DefaultCellStyle = null; dgv.AlternatingRowsDefaultCellStyle = null; dgv.ColumnHeadersDefaultCellStyle = null; dgv.RowHeadersDefaultCellStyle = null; // Обнуление стилей строк, столбцов и ячеек. foreach (DataGridViewRow row in dgv.Rows) < row.DefaultCellStyle = null; foreach (DataGridViewColumn column in dgv.Columns) < column.DefaultCellStyle = null; >foreach(DataGridViewCell cell in row.Cells) < cell.Style = null; >> > > // Второй способ private void DefaultStyle1() < ResetFormColor(); foreach (DataGridView dgv in _dgvs) < DataGridView dataGridView = new(); dgv.DefaultCellStyle = dataGridView.DefaultCellStyle; dgv.AlternatingRowsDefaultCellStyle = dataGridView.AlternatingRowsDefaultCellStyle; dgv.ColumnHeadersDefaultCellStyle = dataGridView.ColumnHeadersDefaultCellStyle; dgv.RowHeadersDefaultCellStyle = dataGridView.RowHeadersDefaultCellStyle; dgv.BackgroundColor = dataGridView.BackgroundColor; foreach (DataGridViewRow row in dgv.Rows) < row.DefaultCellStyle = new(); foreach (DataGridViewColumn column in dgv.Columns) < column.DefaultCellStyle = new(); >foreach (DataGridViewCell cell in row.Cells) < cell.Style = new(); >> > >
Сброс стиля к установленным цветам
Если приложение имело собственные цветовые настройки, то первые два способа (см. выше) не дадут ожидаемого результата. Возврат элементов Windows Form к заводским настройкам отменит установленную для приложения цветовую схему. В таком случае имеется только один выход: после установки выбранной темы приложения сохранить настройки в оперативной памяти или файле. А при вызове метода сброса восстановить сохранённую собственную цветовую схему по умолчанию.
В приложении данный способ активируется значением глобальной переменной выбора способа сброса Global.DefaultFormColors = 2 . Этот способ требует глубокое копирование параметров установленного стиля для элементов DataGridView.
Программный код метода глубокого копирования установленных параметров стилей и метода восстановления собственных цветовых настроек приложения:
// Группа сохранения заказных цветов по умолчанию. private static readonly List _defStyles = new(); private static readonly List _defAltStyles = new(); private static readonly List _defColumnStyles = new(); private static readonly List _defRowStyles = new(); private static readonly List _defDvgBackgroundColors = new(); private static bool _init = false; // Конструктор набора стилей. public ColorSet(List dgvs, List gbxs, Form form, MenuStrip menustrip) < _dgvs = dgvs; _gbxs = gbxs; _form = form; _menustrip = menustrip; // Однократная инициализация статических членов. // Сохранение настроек заказных цветов в оперативной памяти. if (_init == false) < // Глубокое копирование свойств стилей. for (int i = 0; i < _dgvs.Count; i++) < _defDvgBackgroundColors.Add(new Color()); _defDvgBackgroundColors[i] = _dgvs[i].BackColor; _defStyles.Add(new DataGridViewCellStyle()); _defStyles[i].BackColor = _dgvs[i].DefaultCellStyle.BackColor; _defStyles[i].ForeColor = _dgvs[i].DefaultCellStyle.ForeColor; _defAltStyles.Add(new DataGridViewCellStyle()); _defAltStyles[i].BackColor = _dgvs[i].AlternatingRowsDefaultCellStyle.BackColor; _defAltStyles[i].ForeColor = _dgvs[i].AlternatingRowsDefaultCellStyle.ForeColor; _defColumnStyles.Add(new DataGridViewCellStyle()); _defColumnStyles[i].BackColor = _dgvs[i].ColumnHeadersDefaultCellStyle.BackColor; _defColumnStyles[i].ForeColor = _dgvs[i].ColumnHeadersDefaultCellStyle.ForeColor; _defRowStyles.Add(new DataGridViewCellStyle()); _defRowStyles[i].BackColor = _dgvs[i].ColumnHeadersDefaultCellStyle.BackColor; _defRowStyles[i].ForeColor = _dgvs[i].ColumnHeadersDefaultCellStyle.ForeColor; >_init = true; > > . . . . . . . . . . private void DefaultStyle2() < ResetFormColor(); for (int i = 0; i < _dgvs.Count; i++) < foreach (DataGridViewRow row in _dgvs[i].Rows) < row.DefaultCellStyle = null; foreach (DataGridViewColumn column in _dgvs[i].Columns) < column.DefaultCellStyle = null; >foreach (DataGridViewCell cell in row.Cells) < cell.Style = null; >> _dgvs[i].BackgroundColor = _defDvgBackgroundColors[i]; _dgvs[i].DefaultCellStyle.BackColor = _defStyles[i].BackColor; _dgvs[i].DefaultCellStyle.ForeColor = _defStyles[i].ForeColor; _dgvs[i].AlternatingRowsDefaultCellStyle.BackColor = _defAltStyles[i].BackColor; _dgvs[i].AlternatingRowsDefaultCellStyle.ForeColor = _defAltStyles[i].ForeColor; _dgvs[i].ColumnHeadersDefaultCellStyle.BackColor = _defColumnStyles[i].BackColor; _dgvs[i].ColumnHeadersDefaultCellStyle.ForeColor = _defColumnStyles[i].ForeColor; _dgvs[i].RowHeadersDefaultCellStyle.BackColor = _defRowStyles[i].BackColor; _dgvs[i].RowHeadersDefaultCellStyle.ForeColor = _defRowStyles[i].ForeColor; > >
Практический пример цветовых схем DataGridView
Приложение написано на языке C#, среда программирования MS Visual Studio 2022, платформа .NET 6. Программный код приложения построен на примере приложения управления базой данных.
Скачать исходник
Тема: «Настройка цветов DataGridView»
С# Как удалить колонку в DataGridView?
Создадим новый проект типа Windows Forms Application. Затем добавим на форму два элемента управления: кнопку (Button) и DataGridView (dgv).
Для примера создадим и добавим в DataGridView три колонки.
dgv.Columns.AddRange( new DataGridViewTextBoxColumn() < Name = "dgvID", HeaderText = "ID" >, new DataGridViewTextBoxColumn() < Name = "dgvName", HeaderText = "Имя" >, new DataGridViewTextBoxColumn() < Name = "dgvLastName", HeaderText = "Фамилия" >);
Данный код поместим в обработчике события Form_Load. А код, отвечающий за удаление, который будет приведен ниже, поместим в обработчике события Button_Click.
Все колонки хранятся в коллекции Columns. Для удаления колонки (элемента коллекции) используются два метода: Remove и RemoveAt.
Как удалить колонку в DataGridView по названию?
Для удаления колонки по названию используется метод Remove.
Например, давайте рассмотрим, как удалить первую колонку в DataGridView.
dgv.Columns.Remove(«dgvID»);
Узнать или получить название колонки всегда можно с помощью свойства Name.
//получаем название первой колонки string colName = dgv.Columns[0].Name; //удаляем колонку dgv.Columns.Remove(colName);
Также вы можете передать в метод Remove название объекта, который представляет колонку.
Например, в следующем примере показано, как удалить последнюю колонку.
dgv.Columns.Remove(dgvLastName);
Как удалить колонку в DataGridView по индексу?
Для удаления колонки по индексу используется метод RemoveAt.
Индекс первой колонки всегда равен нулю, а индекс последней:
int lastCol = dgv.Columns.Count — 1;
Например, давайте рассмотрим, как удалить вторую колонку в DataGridView.
dgv.Columns.RemoveAt(1);
Индекс колонки можно получить с помощью свойства Index.
//получаем индекс второй колонки int indexCol = dgv.Columns["dgvName"].Index; //удаляем колонку dgv.Columns.RemoveAt(indexCol);
Как удалить все колонки в DataGridView?
Для удаления всех колонок в DataGridView используется метод Clear.
dgv.Columns.Clear();
Как избавиться от стрелки в RowHeader DataGridView C#?
Всем привет!
Мне хочется сделать аккуратный тонкий столбец заголовков строк в datagridе,
но мешает стрелка. С ней столбец получается слишком широкий. Может кто-то сталкивался с такой проблемой, помогите разобраться 🙂
- Вопрос задан более трёх лет назад
- 1127 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 1
WinForms? Вот эта стрелка? joxi.ru/82QNbWdixROBAd
Если да, то свойство RowHeadersVisible вас спасет.
А что бы оставить стобик, но скрыть стрелки:
dataGridView1.RowHeadersDefaultCellStyle.Padding = new Padding(dataGridView1.RowHeadersWidth);
Ответ написан более трёх лет назад
nubic @nubic Автор вопроса
мне нужен RoHeader, но без стрелки в нем) вот в чем проблема
Добавил решение в свой ответ.
nubic @nubic Автор вопроса
Артем: все равно что-то не то) теперь текст не видно. ( придется смириться с толстым столбцом похоже :/
Ваш ответ на вопрос
Войдите, чтобы написать ответ
- Visual Studio
Как вернуть обозреватель решений в правую часть рабочей области VS?
- 1 подписчик
- 21 окт.
- 25 просмотров
Datagridview c как убрать первый столбец
DataGridView — стандартный GUI компонент для отображения и редактирования таблиц. Здесь коротко рассмотрены основные моменты работы с этим классом.
Перекиньте стандартным способом в форму компонент DataGridView.
Источник данных при создании можно не указывать, так как DataGridView позволяет хранить данные внутри себя и добавлять/удалять их на лету, во время выполнения (runtime). После этого редактором свойств настройте поведение по умолчанию нового экземпляра DataGridView. Я обычно меняю свойства AllowUserToAddRows на false, AllowUserToDeleteRows на false, ReadOnly на true. Можно также переименовать экземпляр из dataGridView1 в что-нибудь более осмысленное, подходящее для Вашей программы.
Добавление строк и столбцов. Столбцы и строки можно добавлять во время выполнения программы (подробнее см. [1]). Пример добавления строк:
dataGridView1->Rows->Add();
Однако если назначение и структура таблицы (количество и наименование столбцов) известны заранее, то можно редактором свойств добавить столбцы. Для этого редактируют свойство Columns.
Стиль текста заголовка. Пример, как можно установить жирный шрифт в заголовке таблицы:
DataGridView dgv = 0 == tabControl1.SelectedIndex ? ОсновнойDGV : РезервDGV; DataGridViewCellStyle style = dgv.ColumnHeadersDefaultCellStyle; style.Font = new Font(style.Font, FontStyle.Bold); // Жирный текст
Как поменять цвет фона заголовка и цвет шрифта:
dgv.EnableHeadersVisualStyles = false; dgv.ColumnHeadersDefaultCellStyle.BackColor = Color.Navy; dgv.ColumnHeadersDefaultCellStyle.ForeColor = Color.White;
Работа с ячейками. Обращение к ячейкам DataGridView довольно простое. Индексация столбцов (Columns) и строк (Rows) идет относительно нуля. Столбец с индексом 0 самый левый, и строка с индексом 0 самая верхняя. Количество строк можно получить через свойство RowCount. Добавляются строки методом Удаляются строки методом Rows->Add(), удаляются методом Rows->RemoveAt(номер строки). Пример добавления и удаления строк:
// Добавим в dataGridView1 4 строки: dataGridView1->Rows->Add(); dataGridView1->Rows->Add(); dataGridView1->Rows->Add(); dataGridView1->Rows->Add();
// Удалим все строки из dataGridView1:
while (0 != dataGridView1->RowCount) dataGridView1->Rows->RemoveAt(0);
Более простой способ удаления строк:
dataGridView1->Rows->Clear();
Текущая строка. Узнать номер текущей строки можно через HitTestInfo->RowIndex:
int idx = dataGridView1->HitTestInfo->RowIndex;
Установить (поменять) текущую строку можно через свойство CurrentCell (в примере устанавливаем третью текущую строку):
int idx = 2; dataGridView1->CurrentCell = dataGridView1->Rows[idx]->Cells[0];
Текущая строка помечена в таблице треугольничком:
// Необязательный шаг: отмена выделения текущей ячейки,
// чтобы она не подкрашивалась: dataGridView1->CurrentCell->Selected = false;
Вид таблицы после отмены выделения текущей ячейки:
Изменение данных в ячейках. Менять данные в ячейках таблицы можно только тогда, когда существуют соответствующий столбец и соответствующая строка, иначе произойдет ошибка выполнения («System.ArgumentOutOfRangeException» произошло в mscorlib.dll Дополнительные сведения: Индекс за пределами диапазона. Индекс должен быть положительным числом, a его размер не должен превышать размер коллекции.). После добавления строки методом Add все значения в ячейках добавленной строки будут пустые. К ячейке таблицы можно обращаться по номеру столбца и номеру строки через свойство Value.
Пример добавления строк и заполнения таблицы:
int i = 0; //нумерация строк начинается с 0
if ( (dataGridView1->RowCount - 1) i ) dataGridView1->Rows->Add();
// № строки добавляем в первый столбец Cells[0]: dataGridView1->Rows[i]->Cells[0]->Value = (i+1).ToString();
// Текст добавим во второй столбец Cells[1]: dataGridView1->Rows[i]->Cells[1]->Value = "Текст в ячейке";
i++; //переходим к следующей строке dataGridView1->Rows[i]->Cells[0]->Value = (i+1).ToString(); .
Стиль, цвет текста. Внешний вид текста в ячейке можно менять через свойство Style. Пример изменения цвета нужной ячейки на C#:
private void msgtable(string msg, Color textcolor) < dataGridView1.Rows[rowidx].Cells[2].Style.ForeColor = textcolor; dataGridView1.Rows[rowidx].Cells[2].Value = msg; >
case TCalibReport.ITERATE_OK: msgtable("OK", Color.Green); break; .
Пример изменения шрифта ячейки на жирный:
Font font = new Font(DataGridView.DefaultFont, FontStyle.Bold); dgv.Rows[ТекущаяСтрока].Cells[ТекущийСтолбец].Style.Font = font;
Как обращаться к столбцам не по их индексу, а по имени? Нумерация строк и столбцов начинается с нуля, и когда нам нужно обратиться к конкретной ячейке строки, то это можно сделать через числовой индекс: Rows[индексстроки].Cells[индексстолбца]. Однако есть удобная возможность получить индекс столбца по имени типа столбца:
dgv.Rows[ТекущаяСтрока].Cells[УровеньУст.Index].Value = Установлено.ToString("F2", ci); dgv.Rows[ТекущаяСтрока].Cells[УровеньСчит.Index].Value = Считано.ToString("F2", ci);
В этом примере УровеньУст и УровеньСчит — типы столбцов, которые были установлены во время компиляции визуальным редактированием свойства Columns таблицы dgv. Используется свойство Index этих типов.
Клик на заголовке строки. Обработка клика на заголовке строки на C#:
private void dataGridView1_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
Как удалить последнюю пустую строку?
Ответ: после манипуляции со строками и добавления новых строк установите в false свойство AllowUserToAddRows :
dataGridView1.AllowUserToAddRows = false;
1. Все о DataGridView. Учебник site:datagridview.narod.ru.
2. C#: экспорт/импорт DataGridView в XML и HTML.