VB.net中两侧列表框内容互换的解决方案

来源:互联网 发布:禅道bug管理linux 编辑:程序博客网 时间:2024/05/16 11:48

大家者遇到过需要将两个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

原创粉丝点击