我对编程很新,而且遇到了一些麻烦。我需要创建一个循环来计算我的数据网格中的所有行,然后执行if语句来检查单元格值。我想保留自动生成列。
这是我到目前为止的代码
private void button2_Click(object sender, EventArgs e)
{
for (int x = 0; x < dataGridView2.Rows.Count -1; x++)
{
int m = Convert.ToInt32(dataGridView2.SelectedRows[x].Cells[2].Value);
if (m == 1)
{
MessageBox.Show("Code 1");
}
if (m ==2 )
{
MessageBox.Show("Code 2");
}
}
}
检查单元格2是否为1的第一个if语句正常工作。但是,当我添加另一行时,它会给出“Code 2”消息框,但会崩溃(索引超出范围。必须是非负数且小于集合的大小)。
鉴于我有自动列生成,我的for语句不会保留所选行的值吗?
任何帮助都会很棒!谢谢你们:)
答案 0 :(得分:0)
感谢Crowcoder。我误解了.SelectedRows做了什么。
这是我的固定代码
private void button2_Click(object sender, EventArgs e)
{
for (int x = 0; x < dataGridView2.Rows.Count -1; x++)
{
int m = Convert.ToInt32(dataGridView2.Rows[x].Cells[2].Value);
if (dataGridView2.Rows[x].Selected)
{
if (m == 1)
{
MessageBox.Show("Code 1");
}
if (m == 2)
{
MessageBox.Show("Code 2");
}
}
}
}