VB ListBox 借助winAPI实现鼠标自由拖放改变顺序
2016-12-07 21:27
477 查看
在窗体Form1上放置一个一个ListBox控件List1,然后在Form1的窗体代码里面复制以下即可
Option Explicit Public item_height As Single Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Const LB_GETITEMHEIGHT = &H1A1 Private Sub Form_Load() List1.AddItem "China" List1.AddItem "America" List1.AddItem "Japan" List1.AddItem "Soccer" List1.AddItem "Tennis" List1.AddItem "Basketball" item_height = Screen.TwipsPerPixelX * _ SendMessage(List1.hwnd, LB_GETITEMHEIGHT, 0, vbNullString) End Sub '从list1拖到Form上就删掉 Public Sub Form_DragDrop(Source As Control, X As Single, Y As Single) If Not (Source Is List1) Then Exit Sub If List1.ListIndex >= 0 Then List1.RemoveItem List1.ListIndex End Sub '从list1拖到list1上 Private Sub List1_DragDrop(Source As Control, X As Single, Y As Single) Dim newpos As Integer If Not (Source Is List1) Then Exit Sub newpos = Y / item_height If newpos > List1.ListCount Then List1.AddItem List1.List(List1.ListIndex) Else List1.AddItem List1.List(List1.ListIndex), newpos End If If List1.ListIndex >= 0 Then List1.RemoveItem List1.ListIndex End Sub '鼠标按下就开始拖 Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) List1.Drag End Sub
相关文章推荐
- VB简单实现防止文件被改写
- VB获取文件大小的方法
- VB实现的《QQ美女找茬游戏》作弊器实例
- VB实现禁用任务管理器的方法
- VBS教程:运算符-运算符(+)
- VB实现的16位和32位md5加密代码分享
- VB6中的LSet语句和RSet语句详解
- VB实现的递归复制文件和搜索文件的代码分享
- VB键盘鼠标无动作调用程序的尝试
- VB XMLHTTP使用方法
- VB语言使用ADO连接、操作SQLServer数据库教程
- VB使用ADO操作Access数据库
- VB使用shell函数打开外部exe程序的实现方法
- VB的TextBox文本框实现垂直居中显示的方法
- VB关机恶搞小程序
- VB返回记录集结果到HTML表格的方法
- VBS教程:运算符-\ 运算符
- VBS教程:运算符-减运算符 (-)
- VBS教程:运算符-除运算符 (/)
- WPF中的ListBox实现按块显示元素的方法