问题描述
//查询定位privatevoidbutton7_Click(objectsender,EventArgse){{introw=dataGridView1.Rows.Count;//得到总行数intcell=dataGridView1.Rows[1].Cells.Count;//得到总列数stringstrTxt=textBox4.Text;//得到输入的字符串,并付值给变量Regexr=newRegex(strTxt);//定义一个Regex对象实例for(inti=0;i<row;i++)//得到总行数并在之内循环{for(intj=0;j<cell;j++)//得到总列数并在之内循环{Matchm=r.Match(dataGridView1.Rows[i].Cells[j].Value.ToString());//在字符串中模糊匹配if(m.Success){//对比TexBox中的值是否与dataGridView中的值相同(上面这句)dataGridView1.CurrentCell=dataGridView1[j,i];//定位到相同的单元格if(MessageBox.Show("是否需要继续查找?","",MessageBoxButtons.OKCancel)==DialogResult.Cancel){//如果选择了取消就会返回,如果选择了确定,就会继续查找匹配的.return;//返回}}}}}}
解决方案
解决方案二:
dataGridView1.CurrentCell=dataGridView1[j,i];i,j反了
解决方案三:
引用1楼的回复:
dataGridView1.CurrentCell=dataGridView1[j,i];i,j反了
看错了,和这无关intcell=dataGridView1.Rows[1].Cells.Count;//得到总列数你的记录会不会是不够2行在这里报错?
解决方案四:
不是啊,我的记录很多的,就是一行一行这么定位下去,知道符合条件的最后一行的时候,如果我再点击下一条记录,它就报错,就溢出了引用2楼的回复:
引用1楼的回复:dataGridView1.CurrentCell=dataGridView1[j,i];i,j反了看错了,和这无关intcell=dataGridView1.Rows[1].Cells.Count;//得到总列数你的记录会不会是不够2行在这里报错?
解决方案五:
引用3楼的回复:
不是啊,我的记录很多的,就是一行一行这么定位下去,知道符合条件的最后一行的时候,如果我再点击下一条记录,它就报错,就溢出了引用2楼的回复:引用1楼的回复:dataGridView1.CurrentCell=dataGridView1[j,i];i,j反了看错了,和这无关intcell=dataGridView1.Rows[1].Cell……
具体在哪行代码溢出的?
解决方案六:
你点击下一条是privatevoidbutton7_Click(objectsender,EventArgse)?该为公共变量试看J、i
解决方案七:
dataGridView1.RowCountdataGridView1.ColumnCount跟踪查看J、I的值看看