Как переместить элементы из одного списка в другой список

#vba #vb6

#vba #vb6

Вопрос:

Использование VB6

В форме, 2 имени списка как list1, list2 и 4 названия кнопок >, >>, <, <<

 I want to add the list1 selected items to list2
I want to remove the selected items from list2 to list1
  

Как это сделать.

Нужна помощь по коду Vb6

Ответ №1:

Как правило, ваш подход будет заключаться в циклическом просмотре значений индекса всех элементов в вашем исходном ListBox. Если вы перемещаете все элементы в ListBox, то для каждого элемента вам следует вызвать метод AddItem в вашем целевом ListBox (используя значение индекса для извлечения текста текущего элемента в вашем исходном ListBox). Затем вы должны вызвать метод ListBox removeItem, чтобы удалить тот же элемент из вашего исходного ListBox.

Если вы перемещаете только выбранные элементы, то вы все равно будете перебирать все значения индекса, но вы будете использовать свойство Selected для каждого элемента в исходном списке, чтобы определить, выбран ли элемент. Если это так, используйте описанные выше шаги для перемещения элемента.

Однако особенности того, что вам нужно сделать, различаются в зависимости от того, как вы настроили несколько свойств в своих списках. Ресурс, который вы сочтете полезным, — это обсуждение списков на thevbprogrammer.com. Посмотрите на пример раздела: Добавление и удаление элементов с помощью двух списков; в нем приведены примеры того, что вы хотите сделать.

Ответ №2:

Чтобы добавить в List2 из List1 в VBA

 Private Sub CMDAddOne_Click()
    On Error GoTo Err_cmdAdd_Click
    If Me.List1.ListIndex >= 0 Then
        Me.List2.AddItem (Me.List1.ItemData(Me.List1.ListIndex))
    End If

    Exit_cmdAdd_Click:
      Exit Sub

    Err_cmdAdd_Click:
        MsgBox Err.Description
        Resume Exit_cmdAdd_Click
End Sub
  

Для удаления из списка2

 If Me.List2.ListIndex >= 0 Then
    Me.List2.RemoveItem Me.List2.ListIndex
 End If