CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

MSFLEXGRID可否快速清除重复纪录(在线等待)

楼主zergs(zergs)2005-04-07 10:52:33 在 VB / 基础类 提问

Private   Sub   Form_Load()  
  With   MSFlexGrid1  
  .Rows   =   1  
  .Cols   =   1  
  .AddItem   "4"  
  .AddItem   "4"  
  .AddItem   "3"  
  .AddItem   "2"  
  .AddItem   "3"  
  .AddItem   "4"  
  End   With  
  End   Sub  
  我想加个command1来使MSFlexGrid1中重复纪录清除,最后只有3行,即"4"、"3"、"2",请问有什么快捷方法没?(当然实际中我的cols不会只是1列)  
   
  以前清除combo中的重复纪录我借鉴过别人方法(如下),有人指点下我如何根据MSFlexGrid中某列来清除重复纪录呢?:  
   
  Public   Declare   Function   SendMessagebyString   Lib   _  
  "user32"   Alias   "SendMessageA"   (ByVal   hwnd   As   Long,   _  
  ByVal   wMsg   As   Long,   ByVal   wParam   As   Long,   _  
  ByVal   lParam   As   String)   As   Long  
  Public   Const   CB_FINDSTRINGEXACT   =   &H158  
  Public   Const   LB_FINDSTRINGEXACT   =   &H1A2  
   
  Private   Sub   Command2_Click()  
  Dim   i   As   Integer  
  For   i   =   combo1.ListCount   -   1   To   1   Step   -1  
      If   SendMessagebyString(combo1.hwnd,   CB_FINDSTRINGEXACT,   -1,   combo1.List(i))   <   i   Then  
          combo1.RemoveItem   i  
      End   If  
  Next   i  
  End   Sub 问题点数:60、回复次数:10Top

1 楼Ghost360(绝不是偶然)回复于 2005-04-07 11:49:57 得分 0

MSFlexGrid1.Cell(flexcpText,   0,   1,   MSFlexGrid1.Rows   -   1,MSFlexGrid1.Cols   -   1)   =   ""Top

2 楼zergs(zergs)回复于 2005-04-07 12:02:23 得分 0

Ghost360(绝不是偶然)   在做什么哦?Top

3 楼viena(维也纳N02)回复于 2005-04-07 13:27:01 得分 20

没办法吧,  
  清空重新添加咯  
   
  如果是相邻单元,可以设置  
  MergeCells为flexMergeFree,合并包含相同内容的单元Top

4 楼viena(维也纳N02)回复于 2005-04-07 13:32:51 得分 0

设置MergeCells为flexMergeRestrictColumnsTop

5 楼zergs(zergs)回复于 2005-04-07 16:38:17 得分 0

没有其他方法么?因为我是通过一些图形查询出一些纪录,这些纪录自然会有重复的。所以。。。  
  先谢谢木头人。Top

6 楼wynbfqny(今无心)回复于 2005-04-07 16:54:32 得分 40

Private   Sub   Form_Load()  
  With   MSFlexGrid1  
  for   i=1   to   .rows-1  
  for   j=1   to   .RowSel-1    
  if   .TextMatrix(i,1)=.textmatrix(j,1)   then  
  .RemoveItem    
  next   j  
  next   i  
  End   With  
  End   Sub  
  Top

7 楼ljhdi( )回复于 2005-04-07 17:07:10 得分 0

来学习的Top

8 楼wynbfqny(今无心)回复于 2005-04-07 17:14:19 得分 0

不好意思,有些错误  
  Private   Sub   Form_Load()  
  With   MSFlexGrid1  
  k=0  
  for   i=1   to   .rows-1  
  for   j=1   to   .RowSel-1    
  if   .TextMatrix(i+k,1)=.textmatrix(j,1)   then  
  .RemoveItem    
  k=k+1  
  exit   for  
  endif  
  next   j  
  next   i  
  End   With  
  End   Sub  
  Top

9 楼zergs(zergs)回复于 2005-04-09 08:16:45 得分 0

Dim   i,   j   As   Integer  
  With   MSFlexGrid1  
  k   =   0  
  Combo2.Clear  
  Dim   ind()   As   Integer  
  ReDim   ind(.Rows)   As   Integer  
  For   i   =   1   To   .Rows   -   2  
      For   j   =   i   +   1   To   .Rows   -   1  
          If   .TextMatrix(i,   0)   =   .TextMatrix(j,   0)   Then  
              Combo2.AddItem   i  
          End   If  
      Next   j  
  Next   i  
  End   With  
  Combo2.ListIndex   =   0  
   
  For   i   =   Combo2.ListCount   -   1   To   1   Step   -1  
      If   SendMessagebyString(Combo2.hwnd,   CB_FINDSTRINGEXACT,   -1,   Combo2.List(i))   <   i   Then  
          Combo2.RemoveItem   i  
      End   If  
  Next   i  
  For   i   =   Combo2.ListCount   -   1   To   0   Step   -1  
      MSFlexGrid1.RemoveItem   Combo2.List(i)  
  Next   i  
   
   
   
  Public   Declare   Function   SendMessagebyString   Lib   _  
  "user32"   Alias   "SendMessageA"   (ByVal   hwnd   As   Long,   _  
  ByVal   wMsg   As   Long,   ByVal   wParam   As   Long,   _  
  ByVal   lParam   As   String)   As   Long  
   
  Public   Const   CB_FINDSTRINGEXACT   =   &H158  
  Public   Const   LB_FINDSTRINGEXACT   =   &H1A2  
   
   
   
  借助于1个隐藏的combo2,将数值写到combo2,清除重复纪录号,再清除纪录。  
  通过麻烦点的办法可以实现了。呵呵。  
  今无心的下标会出界的。Top

10 楼wynbfqny(今无心)回复于 2005-04-09 08:59:02 得分 0

不好意思,没有调试过,呵呵,下标出界自已改下就行了Top

相关问题

  • 急!清除字符串的重复项。
  • 用completport时,CompletionKey和Overlapped结构的内存可否重复使用?
  • 用picture.cls清除picture,并重绘。不断重复,会有闪烁,如何解决?
  • 关于如何清除表中重复记录的问题,顶着有分!~~
  • SQL Server 2000中,数据库的事务日太大了时,可否进行部分清除的操作?
  • oracle不能自动防止丢失修改,读的不可重复性----指的是什么意思,,可否举例解释
  • 数据重复
  • 可否做出
  • Win2000可否ghost?
  • 可否实现?

关键词

  • msflexgrid
  • 清除
  • 重复纪录
  • additem
  • findstringexact
  • combo
  • byval
  • sub
  • long

得分解答快速导航

  • 帖主:zergs
  • viena
  • wynbfqny

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo