datagridview и NumericUpDown? - PullRequest
       33

datagridview и NumericUpDown?

0 голосов
/ 27 мая 2011

У меня есть поле NumericUpDown и, в зависимости от его значения, я хочу вставить букву в DataGridView.Вот мой код, но он не вставляется в нужный мне столбец.

if (MarkNumericUpDown.Value < 50)
{
    //dataGridView1.Rows.Add("F");
}
else if (MarkNumericUpDown.Value > 50 && MarkNumericUpDown.Value <= 64)
{
    //dataGridView1.Rows.Add("D");
}
else if (MarkNumericUpDown.Value > 64 && MarkNumericUpDown.Value <= 68)
{
    //dataGridView1.Rows.Add("D+");
}
else if (MarkNumericUpDown.Value > 68 && MarkNumericUpDown.Value <= 72)
{
    //dataGridView1.Rows.Add("C-");
}
else if (MarkNumericUpDown.Value > 72 && MarkNumericUpDown.Value <= 76)
{
    //dataGridView1.Rows.Add("C");
}
else if (MarkNumericUpDown.Value > 76 && MarkNumericUpDown.Value <= 80)
{
    //dataGridView1.Rows.Add("C+");
}
else if (MarkNumericUpDown.Value > 80 && MarkNumericUpDown.Value <= 84)
{
    //dataGridView1.Rows.Add("B-");
}
else if (MarkNumericUpDown.Value > 88 && MarkNumericUpDown.Value <= 92)
{
    //dataGridView1.Rows.Add("B");
}
else if (MarkNumericUpDown.Value > 92 && MarkNumericUpDown.Value <= 96)
{
    //dataGridView1.Rows.Add("B+");
}
else if (MarkNumericUpDown.Value > 96 && MarkNumericUpDown.Value <= 100)
{
    //dataGridView1.Rows.Add("A-");
}

1 Ответ

1 голос
/ 27 мая 2011

Я подозреваю, что вас больше интересуют значения Cells, а не Rows.Попробуйте что-то вроде этого:

        if (MarkNumericUpDown.Value < 50)
        {
            int index = dataGridView1.Rows.Add();
            dataGridView1.Rows[index].Cells[1].Value = "F";
        }
        else if (MarkNumericUpDown.Value > 50 && MarkNumericUpDown.Value <= 64)
        {
            int index = dataGridView1.Rows.Add();
            dataGridView1.Rows[index].Cells[2].Value = "D";
        }

Обновление: Судя по вашей картинке, похоже, что вас интересует только РЕДАКТИРОВАНИЕ строки, а не ДОБАВЛЕНИЕ строки.Если дело обстоит именно так, вам нужно следить за тем, какая строка вас интересует и какой столбец вас интересует (пожалуйста, замените имена переменных на те, которые имеют больше смысла для вашего приложения):

int indexOfRowICareAbout = 0;
int indexOfColumnIStoreLettersIn = 4; //Judging by your picture 

if (MarkNumericUpDown.Value < 50)
{
    dataGridView1.Rows[indexOfRowICareAbout].Cells[indexOfColumnIStoreLettersIn].Value = "F";
}
else if (MarkNumericUpDown.Value > 50 && MarkNumericUpDown.Value <= 64)
{
    dataGridView1.Rows[indexOfRowICareAbout].Cells[indexOfColumnIStoreLettersIn].Value = "D";
}
...