注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

闻新而动

双核动力

 
 
 

日志

 
 
 
 

VB中Listbox内容上下移动的方法  

2010-10-20 12:06:40|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在Listbox中有很多内容,但是在输出时想让它有一定的顺序,所以想设计一个上下移动的功能。如下图的样子:

图像 1

实现的方法是:

选中一行,然后将其添加到上(下)一行,同时删除原来的自己。

说明:列表框名为listSelected,向上的按键为cmdUp,向下的按键为cmdDown

向上的代码:

Private Sub cmdUp_Click()
Dim sUP As Integer

On Error GoTo Uerr   ‘错误处理,防止到边界是出错

If listSelected.SelCount <> 0 Then
sUP = listSelected.ListIndex      ’设为自己当时的索引号
listSelected.AddItem listSelected.Text, listSelected.ListIndex – 1     ‘往上一行添加自己

listSelected.RemoveItem listSelected.ListIndex   ’删除自己
listSelected.Selected(sUP - 1) = True   ‘让被复制行为选中,这个就可以连续移动了
Else
MsgBox "没有选取条件!", vbOKOnly + vbInformation, "提示"
End If
Exit Sub

Uerr:      ’错误处理
MsgBox "这都是最上面了,你还想让我往那移啊?", vbOKOnly + vbCritical, "无路可走"

'下面的语句不出现提示,直接跳到最后做循环

'listSelected.AddItem listSelected.Text, listSelected.ListCount
'listSelected.RemoveItem listSelected.ListIndex
'listSelected.Selected(listSelected.ListCount - 1) = True

End Sub

 

向下的代码:(基本同向上)

Private Sub cmdDown_Click()
Dim sDown As Integer

On Error GoTo Derr

If listSelected.SelCount <> 0 Then
sDown = listSelected.ListIndex
listSelected.AddItem listSelected.Text, sDown + 2     ‘此处是+2,注意,因为原始索引是多0开始的
listSelected.RemoveItem listSelected.ListIndex
listSelected.Selected(sDown + 1) = True
Else
MsgBox "没有选取条件!", vbOKOnly + vbInformation, "提示"
End If
Exit Sub

Derr:

MsgBox "这都是最下面了,你还想让我往那移啊?", vbOKOnly + vbCritical, "无路可走"

'下面的语句不出现提示,直接跳到最前做循环

'listSelected.AddItem listSelected.Text, 0
'listSelected.RemoveItem listSelected.ListIndex
'listSelected.Selected(0) = True

 

End Sub

 

alpsong@2010

  评论这张
 
阅读(1868)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017