Нужна помощь с программированием на C# Может ли кто то подсказать код(способ,действие),который анализирует значения в DataGridViev,вычитая значения в таблице из заданного значения и выбирая наименьшее по модулю,чтобы в итоге это значение выделялось в таблице либо цветом либо еще как нибудь Вот код моей программы:
private void button4_Click(object sender, EventArgs e)
{
if (!CheckInput_Int(textBox2) ||
!CheckInput_Double(textBox8) ||
!CheckInput_Double(textBox9) ||
!CheckInput_Double(textBox10) ||
!CheckInput_Double(textBox11) ||
!CheckInput_Double(textBox6) ||
!CheckInput_Double(textBox7))
{
MessageBox.Show("Проверьте значения полей!", "Внимание!",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}
int gg = Convert.ToInt32(textBox2.Text);
dataGridView1.RowCount = gg;
double
t_kond = Convert.ToDouble(textBox8.Text), t_dear = Convert.ToDouble(textBox9.Text),
t_oe = Convert.ToDouble(textBox10.Text), t_egu = Convert.ToDouble(textBox11.Text),
z = Convert.ToDouble(textBox2.Text), alfa = 0.9, tp_pereddear = t_dear - 10,
t_nach = Convert.ToDouble(textBox6.Text), p_pg = Convert.ToDouble(textBox7.Text),
t_pv = ((t_nach - t_kond - t_oe - t_egu) / (z + 1)),
t_pvopt = t_nach - t_pv,
t_pvek = alfa * (t_pvopt - t_kond) + t_kond;
double yBase = t_kond + t_oe + t_egu + t_pv;
double[] x = new double[gg];
double[] y = new double[gg];
for (int i = 0; i < gg; i++)
{
x[i] = i + 1;
y[i] = yBase + t_pv * i;
dataGridView1.Rows[i].Cells[0].Value = x[i].ToString();
dataGridView1.Rows[i].Cells[1].Value = y[i].ToString();
}
}
}
}
private void ColorCellWithClosestValue(double aValue, Color aColor)
{
// coordinates of cell with closest value
int col = -1;
int row = -1;
// current minimal difference
double delta = 0;
// current cell value
double value;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
for (int j = 0; j < dataGridView1.Rows[i].Cells.Count; j++)
{
if (double.TryParse(Convert.ToString(dataGridView1.Rows[i].Cells[j].Value), out value))
{
if (Math.Abs(aValue - value) < delta)
{
delta = Math.Abs(aValue - value);
row = i;
col = j;
}
}
}
}
if (row >= 0 && col >= 0)
dataGridView1.Rows[row].Cells[col].Style.ForeColor = aColor;
}
private void btnCompareClick(object sender, EventArgs e)
{
// call it like this:
double value;
if (double.TryParse(textboxCompare.Text, out value))
{
ColorCellWithClosestValue(value, Color.Red);
}
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости