C#winform 提取datagridview特定行,总是提示超出索引范围是怎么回事?主要代码如下:
inti=getN(-1);for(intj=0;j<this.dataGridView1.RowCount-1;j++){stringstr=Convert.ToStr...
int i = getN(-1);
for (int j = 0; j < this.dataGridView1.RowCount - 1; j++)
{
string str = Convert.ToString(this.dataGridView1[j, i].Value);
if (txthang.Text != str)
{
//dataGridView1.Rows[j].Visible = true;
dataGridView1.Rows.Remove(dataGridView1.Rows[j]);
j--;
}
}
定义的方法://cmbZiduan.Text指列举在combox中的列名
public int getN(int n)
{
for (int m = 0; m < this.dataGridView1.ColumnCount; m++)
{
if (this.dataGridView1.Columns[m].Name == cmbZiduan.Text)
{
n = m; //表列名不能重复
}
}
return n;
} 展开
for (int j = 0; j < this.dataGridView1.RowCount - 1; j++)
{
string str = Convert.ToString(this.dataGridView1[j, i].Value);
if (txthang.Text != str)
{
//dataGridView1.Rows[j].Visible = true;
dataGridView1.Rows.Remove(dataGridView1.Rows[j]);
j--;
}
}
定义的方法://cmbZiduan.Text指列举在combox中的列名
public int getN(int n)
{
for (int m = 0; m < this.dataGridView1.ColumnCount; m++)
{
if (this.dataGridView1.Columns[m].Name == cmbZiduan.Text)
{
n = m; //表列名不能重复
}
}
return n;
} 展开
1个回答
展开全部
当你remove了以后
this.dataGridView1.RowCount 的值就会改变了
而且
dataGridView1.Rows中的成员顺序也会改变
所以remove的时候还是考虑别的方法,例如一直remove最后一个直到this.dataGridView1.RowCount == 0
this.dataGridView1.RowCount 的值就会改变了
而且
dataGridView1.Rows中的成员顺序也会改变
所以remove的时候还是考虑别的方法,例如一直remove最后一个直到this.dataGridView1.RowCount == 0
更多追问追答
追问
之前把 i 确定为定值时就没这个问题,只是想实现 i 可以根据cmbziduan的文本内容来判断 i 为何值
追答
是说保留与txthang中文本相同的行吧?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询