WinForm使用DataGridView实现类似Excel表格的查找替换功能_第1页
WinForm使用DataGridView实现类似Excel表格的查找替换功能_第2页
WinForm使用DataGridView实现类似Excel表格的查找替换功能_第3页
WinForm使用DataGridView实现类似Excel表格的查找替换功能_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第WinForm使用DataGridView实现类似Excel表格的查找替换功能3、如何查找替换

实例化一个DataToolsWindow后对事件进行注册。重点是如何查找,因为替换和查找一样,只要查找到了替换就行了。

查找下一个

大概的思路就是按照【选定】的当前单元格为标记,首先以当前单元格为分界线向下查找,在查找的过程中判断用户选择的是当前列还是整个数据表,如果是当前列只需要按行查找当前列就行了。

如果是整个数据表查找则需要整行的每列都查找,如果查找到选中行查找的列就是找当前列前面的列(后面的列会在向下查找中遍历到),如果不是选中行则整行从第一列开始全部列查找。

同理,向下查找的思路也就出来了。

privatevoidToolsWindow_LookUpHandler(objectsender,EventArgse)

intcurrentRowIndex=dgvPeople.CurrentCell.RowIndex;

intcurrentColumnIndex=dgvPeople.CurrentCell.ColumnIndex;

foreach(DataGridViewRowrowindgvPeople.Rows)

//向下查找

if(row.Index=currentRowIndex)

if(toolsWindow.AllLookup)

//如果是当前选中行则查找后面的列

if(currentRowIndex==row.Index)

foreach(DataGridViewCellcellinrow.Cells)

if(cell.ColumnIndexcurrentColumnIndex)

if(cell.Value!=nullcell.Value.ToString().Contains(toolsWindow.LookupContent))

cell.Selected=true;

dgvPeople.CurrentCell=cell;

return;

else

{//否则从第一列开始查找

foreach(DataGridViewCellcellinrow.Cells)

if(cell.Value!=nullcell.Value.ToString().Contains(toolsWindow.LookupContent))

cell.Selected=true;

dgvPeople.CurrentCell=cell;

return;

else

//字段查找不查找当前因为是查找下一个

if(row.Index==currentRowIndex)

continue;

if(row.Cells[currentColumnIndex].Value!=nullrow.Cells[currentColumnIndex].Value.ToString().Contains(toolsWindow.LookupContent))

row.Cells[currentColumnIndex].Selected=true;

dgvPeople.CurrentCell=row.Cells[currentColumnIndex];

return;

foreach(DataGridViewRowrowindgvPeople.Rows)

//向上查找

if(row.Index=currentRowIndex)

if(toolsWindow.AllLookup)

//如果是当前选中行只查找前面的列

if(currentRowIndex==row.Index)

foreach(DataGridViewCellcellinrow.Cells)

if(cell.ColumnIndexcurrentColumnIndex)

if(cell.Value!=nullcell.Value.ToString().Contains(toolsWindow.LookupContent))

cell.Selected=true;

dgvPeople.CurrentCell=cell;

return;

else

{//否则从第一列开始查找

foreach(DataGridViewCellcellinrow.Cells)

if(cell.Value!=nullcell.Value.ToString().Contains(toolsWindow.LookupContent))

cell.Selected=true;

dgvPeople.CurrentCell=cell;

return;

else

//字段查找不查找当前因为是查找下一个

if(row.Index==currentRowIndex)

continue;

if(row.Cells[currentColumnIndex].Value!=nullrow.Cells[currentColumnIndex].Value.ToString().Contains(toolsWindow.LookupContent))

row.Cells[currentColumn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论