Как вычислить и выделить значения DataGridView в C#
В этом примере показано, как вычислять и выделять значения DataGridView во время выполнения. Он использует следующий код для инициализации элемента управления DataGridView. Он устанавливает описание каждого элемента, цену единицы и количество, но не его общую стоимость.
// Создание некоторых элементов данных. dgvValues.Rows.Add(new object[] { "Pencils, dozen", 1.24m, 4 }); dgvValues.Rows.Add(new object[] { "Paper, ream", 3.75m, 3 }); dgvValues.Rows.Add(new object[] { "Cookies, box", 2.17m, 12 }); dgvValues.Rows.Add(new object[] { "Notebook", 1.95m, 2 }); dgvValues.Rows.Add(new object[] { "Pencil sharpener", 12.95m, 1 }); dgvValues.Rows.Add(new object[] { "Paper clips, 100", 0.75m, 1 });
Затем код вызывает следующий метод CalculateTotals для вычисления общих затрат элементов.
// Рассчитайте общие затраты и // выделяем итоговые суммы более $ 9.99. private void CalculateTotals() { // Создаем стиль для значений, превышающих $ 9.99. DataGridViewCellStyle highlight_style = new DataGridViewCellStyle(); highlight_style.ForeColor = Color.Red; highlight_style.BackColor = Color.Yellow; highlight_style.Font = new Font(dgvValues.Font, FontStyle.Bold); // Рассчитаем общие затраты. foreach (DataGridViewRow row in dgvValues.Rows) { // Вычислить общую стоимость. decimal total_cost = (decimal)row.Cells["PriceEach"].Value * (int)row.Cells["Quantity"].Value; // Отображение значения. row.Cells["Total"].Value = total_cost; // Выделите ячейку, если vcalue большой. if (total_cost > 9.99m) row.Cells["Total"].Style = highlight_style; } }
Этот метод создает DataGridViewCellStyle, который будет использоваться для выделения ячеек с большими суммами затрат. Затем он перебирает строки, устанавливающие запись каждой строки Total.
Обратите внимание, что код использует имена столбцов в качестве индексов. Имена столбцов были установлены во время разработки, когда я определил столбцы. Код может использовать индексы столбцов, но это легче читать и будет работать, если вы измените порядок столбцов.