Как вычислить и выделить значения 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.
Обратите внимание, что код использует имена столбцов в качестве индексов. Имена столбцов были установлены во время разработки, когда я определил столбцы. Код может использовать индексы столбцов, но это легче читать и будет работать, если вы измените порядок столбцов.
