for (int k = 0; k < cell; k++) { if (DataGridView.Columns[k].HeaderText == "子地址") continue; int j = k; if (DataGridView.Columns[k].HeaderText == m_StatusTable[0][j]) DataGridView.Rows[i - 1].Cells[k].Value = m_StatusTable[i][j]; } 想要当DataGridView.Columns[k].HeaderText == "子地址"时后面的每一行都是k比j要大一,做到在满足该条件时,后面进行比较的都是k和j进行比较,且k一直比j大一
时间: 2024-01-04 12:03:05 浏览: 58
ArcGIS Engine+C#编程实例开发教程(22).pdf
您可以将代码改成如下形式来实现您想要的功能:
```
for (int k = 0; k < cell; k++) {
if (DataGridView.Columns[k].HeaderText == "子地址") {
k++;
int j = k - 1;
while (k < cell && DataGridView.Columns[k].HeaderText != "子地址") {
if (DataGridView.Columns[k].HeaderText == m_StatusTable[0][j]) {
DataGridView.Rows[i - 1].Cells[k].Value = m_StatusTable[i][j];
}
j++;
k++;
}
k--;
}
else {
int j = k;
if (DataGridView.Columns[k].HeaderText == m_StatusTable[0][j]) {
DataGridView.Rows[i - 1].Cells[k].Value = m_StatusTable[i][j];
}
}
}
```
这样,当 `DataGridView.Columns[k].HeaderText == "子地址"` 时,会先将 `k` 的值增加 1,然后从 `k+1` 开始循环,直到找到下一个 "子地址" 列,循环中使用 `j` 来记录上一个非 "子地址" 列的索引值,然后进行比较和操作。在比较和操作之后,`j` 的值会增加 1。这样,保证了在满足该条件时,后面进行比较的都是 `k` 和 `j` 进行比较,且 `k` 一直比 `j` 大 1。当不满足条件时,直接和原始的代码一样进行比较和操作。
阅读全文