0

I have a NumericUpDown box and depending on its value, I want to insert the letter into a DataGridView. Here is my code, but it does not insert into the column I want.

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-");
}
4

1 に答える 1

1

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";
}
于 2011-05-27T15:04:17.823 に答える