Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Перетаскивание

Перетаскивание все чаще используется в Windows-приложениях (например, для регулировки положения разделительной полосы в Windows Explorer). Благодаря ему многие операции выполняются быстрее и проще. Наделить приложение Visual Basic возможностью перетаскивания не так уж сложно. Следующий пример показывает, как это делается:

1. Создайте новый проект типа Standard EXE.

2. Задайте свойству Name формы Form1 значение frmMain, а свойству Caption — значение Перетаскивание.

3. Поместите на форму два списка одинакового размера. Один должен находиться в верхней, а другой — в нижней частях формы.

4. Задайте свойству Name верхнего списка значение lstA, а свойству DragIcon — значение \Graphics\Icons\DragDrop\Draglpg.ico.

5. Задайте свойству Name нижнего списка значение lstB, а свойству DragIcon -значение \Graphics\Icons\DragDrop\Draglpg.ico. Примерный вид формы показан на рис. 11.1.

 

Рис. 11.1. Приложение с поддержкой перетаскивания

6. Добавьте в процедуру события Form_Load() следующий фрагмент:

 

Private Sub Form_Load()

lstA,AddItem "Яблоки"

lstA.AddItem "Персики"

lstA,AddItem "Апельсины"

End Sub

 

7. Добавьте в процедуру события lstA_MouseDown() следующий фрагмент:

 

Private Sub lstA_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If lstA.ListCount > 0 Then

lstA.Drag 1

End If

End Sub

 

8. Добавьте в процедуру события lstA_DragDrop() следующий фрагмент:

 

Private Sub lstA_DragDrop(Source As Control, X As Single, Y As Single)

If Source = lstB Then

lstA.Additem lstB.Text

lstB.RemoveItem lstB.ListIndex

End If

End Sub

 

9. Добавьте в процедуру события lstB_MouseDown() следующий фрагмент:

 

Private Sub lstB_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

 

If lstB.ListCount > 0 Then

lstB.Drag 1

End If

End Sub

 

10. Добавьте в процедуру события lstB__DragDrop() следующий фрагмент:

 

Private Sub lstB_DragDrop(Source As Control, X As Single, Y As Single)

If Source = lstA Then

lstB.Additem lstA.Text

lstA.RemoveItem lstA.ListIndex

End If

End Sub

 

11. Сохраните и запустите проект.

Верхний список содержит несколько строк с названиями фруктов. Вы можете щелкнуть на любой строке и перетащить ее в нижний список. Когда указатель мыши окажется над ним, отпустите кнопку мыши. Затем строки можно перетащить обратно в верхний список (рис. 11.2).

 

Рис. 11.2. Перетаскивание строк

 

Ключевым для этой программы является метод Drag. Обратите внимание — в процедуре события MouseDown() он вызывается с параметром 1, который сообщает элементу о начале перетаскивания. Если параметр равен 0, перетаскивание прекращается. Иными словами, чтобы прекратить перетаскивание, следует присвоить свойствам Тор и Left значения координат x и у указателя мыши и вызвать метод Drag 0. При этом имитируется перемещение объекта, тогда как на самом деле оно выполняется в процедуре события DragDrop().

Наш разговор о перетаскивании подходит к концу. Попробуйте немного поэкспериментировать — развлекайтесь и заодно следите за происходящим. Возможно, вам захочется использовать перетаскивание в своих проектах. Обратите внимание на свойство DragIcon источника, то есть перетаскиваемого объекта. Если не задать его значение, вы увидите лишь контур перетаскиваемого объекта.

 


Дата добавления: 2015-07-20; просмотров: 72 | Нарушение авторских прав


Читайте в этой же книге: Использование Crystal Reports в Visual Basic | Создание отчета | Использование отчета в приложении | Current Project | Просмотр результатов | Стандартные диалоговые окна | Окно ввода | Нестандартные диалоговые окна | Создание класса диалогового окна | Использование класса диалоговых окон |
<== предыдущая страница | следующая страница ==>
Событие MouseDown| Свойство OLEDropAllowed

mybiblioteka.su - 2015-2024 год. (0.006 сек.)