首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

ListBox中的内容用button控制其上下移动解决方法

2012-01-08 
ListBox中的内容用button控制其上下移动作两个button一个向上功能一个向下功能点击向下功能被选中的一条或

ListBox中的内容用button控制其上下移动
作两个button一个向上功能   一个向下功能
点击向下功能被选中的一条或者多条数据向下移动,当然左后一条除外
并且被选中的数据还是被选择状态
向上移动按钮也是一样,最上条数据也是不能移动,而且被选中数据移动后也是被选择状态

[解决办法]
数据绑定在listbox之前单独定义一个用于排序列,然后在上移或下移的时候将相应数据的排序列update,可以通过listbox.item(i).select 等方法来选中控件的某个单元。
[解决办法]

窗体里有ButtonUP,ButtonDOWN,还有Listbox1
点ButtonUP选定的元素上移一个
以下是代码


Private Sub ButtonUP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonUP.Click
If ListBox1.SelectedIndices.Contains(0) Then
Exit Sub

End If
Dim k As Integer
For k = ListBox1.SelectedIndices.Item(0) - 1 To ListBox1.SelectedIndices.Item(ListBox1.SelectedIndices.Count - 1)
If ListBox1.SelectedIndices.Contains(k + 1) Then
Change(k, k + 1)
End If

Next
End Sub

Private Sub Change(ByVal a As Integer, ByVal b As Integer)
Dim temp

temp = ListBox1.Items(a)

ListBox1.Items(a) = ListBox1.Items(b)
ListBox1.Items(b) = temp
ListBox1.SelectedIndices.Remove(b)
ListBox1.SelectedIndices.Add(a)
End Sub

Private Sub ButtonDOWN_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonDOWN.Click
If ListBox1.SelectedIndices.Contains(ListBox1.Items.Count - 1) Then
Exit Sub

End If
Dim k As Integer
For k = ListBox1.SelectedIndices.Item(ListBox1.SelectedIndices.Count - 1) + 1 To ListBox1.SelectedIndices.Item(0) Step -1
If ListBox1.SelectedIndices.Contains(k - 1) Then
Change(k, k - 1)
End If

Next
End Sub

热点排行