Перетаскивание элементов ListBox - VB

Узнай цену своей работы

Формулировка задачи:

На форме находятся 2 ListBox.Должна быть возможность поочерёдного перемещения элементов из одного списка в другой.Перетаскивание осуществляентся мышью.

Решение задачи: «Перетаскивание элементов ListBox»

textual
Листинг программы
  1. 'В данном примере показано, как разрешить пользователю перетаскивать элементы между двумя листбоксами. Добавьте два листбокса на форму и вставьте следующий код.
  2.  
  3. Private Sub Form_Load()
  4.  ' Заполняем список
  5. List1.AddItem "James"
  6.  List1.AddItem "Frederick"
  7.  List1.AddItem "Ann"
  8.  List1.AddItem "Paul"
  9.  List1.AddItem "Sarah"
  10.  List1.OLEDropMode = 1
  11.  List2.OLEDropMode = 1
  12.  End Sub
  13.  
  14. ' Код управления перетаскиванием
  15. Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  16.  List1.OLEDrag ' Начало перетаскивания
  17. End Sub
  18.  Private Sub List1_OLEStartDrag(Data As DataObject, AllowedEffects As Long)
  19.  ' Разрешить только перемещение
  20. AllowedEffects = vbDropEffectMove
  21.  ' Наначаем выбор в ListBox на DataObject
  22. Data.SetData List1
  23.  End Sub
  24.  Private Sub List2_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
  25.  Dim strList As String
  26.  ' Проверяем формат DataObject
  27. If Not Data.GetFormat(vbCFText) Then Exit Sub
  28.  ' Получаем текст из DataObject
  29. strList = Data.GetData(vbCFText)
  30.  ' Если элемент не был перемещён сам на себя
  31. If Not strList = List2.Text Then
  32.  List2.AddItem strList
  33.  'Удаляем элемент из ListBox
  34. List1.RemoveItem List1.ListIndex
  35.  End If
  36.  End Sub
  37.  ''
  38. ''
  39. '' Код управления перетаскиванием
  40. ''
  41. ''
  42. Private Sub List2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  43.  List2.OLEDrag ' Начало перетаскивания
  44. End Sub
  45.  Private Sub List2_OLEStartDrag(Data As DataObject, AllowedEffects As Long)
  46.  ' Разрешить только перемещение
  47. AllowedEffects = vbDropEffectMove
  48.  ' Наначаем выбор в ListBox на DataObject
  49. Data.SetData List2
  50.  End Sub
  51.  Private Sub List1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
  52.  Dim strList As String
  53.  ' Проверяем формат DataObject
  54. If Not Data.GetFormat(vbCFText) Then Exit Sub
  55.  ' Получаем текст из DataObject
  56. strList = Data.GetData(vbCFText)
  57.  ' Если элемент не был перемещён сам на себя
  58. If Not strList = List1.Text Then
  59.  List1.AddItem strList
  60.  'Удаляем элемент из ListBox
  61. List2.RemoveItem List2.ListIndex
  62.  End If
  63.  End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы