大家者遇到过需要将两个LISTBOX的内容互换的问题。例如左侧有姓名,住址,职业等字段需要加入到右侧的LISTBOX中以备利用。
一般的方法是:根据列表框内容的索引值和列表框中Item的个数来解决。
下面的例子就是用的这种方法。如图所示
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ListBoxLeft.Items.Add("岳飞")
ListBoxLeft.Items.Add("刘备")
ListBoxLeft.Items.Add("关羽")
ListBoxLeft.Items.Add("赵云")
End Sub
// 按钮 >
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim i As Integer = ListBoxLeft.Items.Count - 1 '记录左侧列表框的内容的个数
While i <> -1
If (ListBoxLeft.SelectedIndex <> -1) Then '获取被选择的索引值
ListBoxRight.Items.Add(ListBoxLeft.Items(ListBoxLeft.SelectedIndex).ToString()) '加入到右侧列表框
ListBoxLeft.Items.RemoveAt(ListBoxLeft.SelectedIndex) '清除左侧列表框被选择的内容
Exit While '单次执行跳出循环
End If
i - = 1 '索引值递减
End While
End Sub
// 按钮 >>
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim i As Integer
For i = 0 To (ListBoxLeft.Items.Count - 1) '根据索引值 依次将左侧列表框的内容加入到右侧列表框
ListBoxRight.Items.Add(ListBoxLeft.Items(i).ToString())
Next
ListBoxLeft.Items.Clear() '清除左侧列表框的内容
End Sub
//按钮 <
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Dim i As Integer = ListBoxRight.Items.Count - 1 '记录右侧列表框的内容的个数
While i <> -1
If (ListBoxRight.SelectedIndex <> -1) Then '根据索引值 依次将右侧列表框的内容加入到左侧列表框
ListBoxLeft.Items.Add(ListBoxRight.Items(ListBoxRight.SelectedIndex).ToString())
ListBoxRight.Items.RemoveAt(ListBoxRight.SelectedIndex) '清除右侧列表框的内容
Exit While
End If
i - = 1 '索引值递减
End While
End Sub
//按钮 <<
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
Dim i As Integer
For i = 0 To (ListBoxRight.Items.Count - 1)
ListBoxLeft.Items.Add(ListBoxRight.Items(i).ToString())
Next
ListBoxRight.Items.Clear()
End Sub