定位代码,有点缺陷,就是到了最后一条记录的时候,再点击下一条就会报错,回不了开始的记录

zheng523301 2012-06-11 08:05:31
//查询定位
private void button7_Click(object sender, EventArgs e)
{
{
int row = dataGridView1.Rows.Count;//得到总行数
int cell = dataGridView1.Rows[1].Cells.Count;//得到总列数
string strTxt = textBox4.Text;//得到输入的字符串,并付值给变量
Regex r = new Regex(strTxt); // 定义一个Regex对象实例
for (int i = 0; i < row; i++)//得到总行数并在之内循环
{
for (int j = 0; j < cell; j++)//得到总列数并在之内循环
{
Match m = 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;//返回
}
}
}
}

}
}
...全文
130 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
dataGridView1.RowCount
dataGridView1.ColumnCount
跟踪查看J、I的值看看
  • 打赏
  • 举报
回复
你点击下一条是private void button7_Click(object sender, EventArgs e)?
该为公共变量试看J、i
__天涯寻梦 2012-06-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
不是啊,我的记录很多的,就是一行一行这么定位下去,知道符合条件的最后一行的时候,如果我再点击下一条记录,它就报错,就溢出了

引用 2 楼 的回复:

引用 1 楼 的回复:
dataGridView1.CurrentCell = dataGridView1[j, i];
i,j 反了

看错了,和这无关
int cell = dataGridView1.Rows[1].Cell……
[/Quote]
具体在哪行代码溢出的?
zheng523301 2012-06-11
  • 打赏
  • 举报
回复
不是啊,我的记录很多的,就是一行一行这么定位下去,知道符合条件的最后一行的时候,如果我再点击下一条记录,它就报错,就溢出了
[Quote=引用 2 楼 的回复:]

引用 1 楼 的回复:
dataGridView1.CurrentCell = dataGridView1[j, i];
i,j 反了

看错了,和这无关
int cell = dataGridView1.Rows[1].Cells.Count;//得到总列数
你的记录会不会是不够2行在这里报错?
[/Quote]
__天涯寻梦 2012-06-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
dataGridView1.CurrentCell = dataGridView1[j, i];
i,j 反了
[/Quote]
看错了,和这无关
int cell = dataGridView1.Rows[1].Cells.Count;//得到总列数
你的记录会不会是不够2行在这里报错?
__天涯寻梦 2012-06-11
  • 打赏
  • 举报
回复
dataGridView1.CurrentCell = dataGridView1[j, i];
i,j 反了

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧