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;
}
展开
 我来答
夜色华丽
2011-07-19 · TA获得超过664个赞
知道小有建树答主
回答量:800
采纳率:0%
帮助的人:402万
展开全部
当你remove了以后
this.dataGridView1.RowCount 的值就会改变了
而且
dataGridView1.Rows中的成员顺序也会改变
所以remove的时候还是考虑别的方法,例如一直remove最后一个直到this.dataGridView1.RowCount == 0
更多追问追答
追问
之前把 i 确定为定值时就没这个问题,只是想实现 i 可以根据cmbziduan的文本内容来判断 i 为何值
追答
是说保留与txthang中文本相同的行吧?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式