嗨,大家好,我在这里=)
我需要你在最小的麻烦案件中的帮助,为我节省时间=)
问题在于,我想拥有datagridview Cells Values和 将值保存到数组中。
到目前为止,它工作正常,但它只读取第一行单元格和之后 这个过程它只是告诉索引超出范围,但我不明白为什么。
foreach (DataGridViewRow row in dataGridView1.Rows) //wo soll er sich aufhalten -> zeilen
{
**if (row.Cells[i].Value == null)**
{
MessageBox.Show("This row is empty");
break;
}
if (row.Cells[i].Value != null)
{
UnsortArray[i] = row.Cells[i].Value.ToString();
MessageBox.Show(UnsortArray[i]);
++i;
}
}
答案 0 :(得分:2)
foreach (DataGridViewRow row in dataGridView1.Rows)
{
for (int i=0; i<= dataGridView1.Columns.Count; i++)
{
**if (row.Cells[i].Value == null)**
{
MessageBox.Show("This row is empty");
}
if (row.Cells[i].Value != null)
{
UnsortArray[i] = row.Cells[i].Value.ToString();
MessageBox.Show(UnsortArray[i]);
}
}
}
另外,我不明白你为什么要在循环中做messageBox.show。它应该在循环之外。
答案 1 :(得分:2)
foreach (DataGridViewRow row in dataGridView1.Rows) //wo soll er sich aufhalten -> zeilen
{
if (row.Cells[i].Value == null)
MessageBox.Show("This row is empty")
else
{
UnsortArray[i] = row.Cells[i].Value.ToString();
MessageBox.Show(UnsortArray[i]);
// ++i; dont need to increment if you want to read only specific column
}
}
答案 2 :(得分:1)
尝试以下代码&gt;&gt;
for(int i=0;i<dataGridView1.Rows.Count;i++)
{
if (dataGridView1.Rows[i].cells[i].Value==null)**
{
MessageBox.Show("This row is empty");
break;
}
else
{
UnsortArray[i] = dataGridView1.Rows[i].cells[i].Value.ToString();
MessageBox.Show(UnsortArray[i]);
}
}
答案 3 :(得分:1)
为UnSortArray
使用不同的Index变量(假设j)。 i
是要在UnSortArray
<强> CODE 强>
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row.Cells[i].Value == null)
{
MessageBox.Show("This row is empty")
}
else
{
UnsortArray[j] = row.Cells[i].Value.ToString();
MessageBox.Show(UnsortArray[j]);
++j;
}
}