Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






События в источнике





В следующей таблице приведены события, возникающие в источнике операции перетаскивания.

Событие мыши Описание
GiveFeedback Это событие возникает во время операции перетаскивания. Оно предоставляет возможность дать пользователю визуальную подсказку о том, что происходит операция перетаскивания, в виде, например, изменения указателя мыши. Обработчик этого события получает аргумент типа GiveFeedbackEventArgs.
QueryContinueDrag Это событие возникает во время операции перетаскивания и позволяет источнику перетаскиваемого объекта определить, следует ли отменить эту операцию. Обработчик этого события получает аргумент типа QueryContinueDragEventArgs.

В классе QueryContinueDragEventArgs содержится текущее состояние кнопок мыши и клавиш CTRL, SHIFT и ALT, значение, указывающее, была ли нажата клавиша ESC, и значение DragAction, которое может быть установлено для указания того, следует ли продолжать операцию перетаскивания.

 

Control.QueryContinueDrag - событие

NET Framework 4.5

Другие версии

Эта тема еще не получила оценку - Оценить эту тему

Происходит во время операции перетаскивания и позволяет источнику перетаскивания определить, следует ли отменить эту операцию.

Пространство имен: System.Windows.Forms
Сборка: System.Windows.Forms (в System.Windows.Forms.dll)

Синтаксис

C#

C++

F#

VB

public event QueryContinueDragEventHandler QueryContinueDrag

Заметки

Событие QueryContinueDrag происходит при изменении состояния клавиатуры или кнопки мыши во время операции перетаскивания. СобытиеQueryContinueDrag позволяет источнику операции перетаскивания определить, следует ли отменить эту операцию.

Далее описывается, как и когда вызываются события, связанные с операциями перетаскивания.

Метод DoDragDrop определяет элемент управления при текущем местоположении курсора. Затем он проверяет, является ли элемент управления допустимым для конечного местоположения объекта перетаскивания.

Если элемент управления является допустимым для конечного местоположения объекта перетаскивания, вызывается событие GiveFeedback с указанным эффектом перетаскивания. Список эффектов перетаскивания см. в перечислении DragDropEffects.

Отслеживаются изменения позиции курсора мыши, состояния клавиатуры и кнопки мыши.

· Если пользователь перемещает курсор мыши за пределы окна, происходит событие DragLeave.

· Если курсор мыши перемещается на другой элемент управления, для этого элемента вызывается событие DragEnter.

· При перемещении мыши в пределах одного элемента управления происходит событие DragOver.

При изменении состояния клавиатуры или кнопки мыши происходит событие QueryContinueDrag, определяющее, следует ли продолжить или завершить перетаскивание либо отменить операцию на основании значения свойства Action аргумента QueryContinueDragEventArgs данного события.

· Если значение объекта DragAction равно Continue, возникает событие DragOver, чтобы продолжить операцию, и событие GiveFeedback с новым эффектом, что позволяет задать соответствующую визуальную обратную связь. Список допустимых эффектов перетаскивания см. в перечислении DragDropEffects.

Примечание
События DragOver и GiveFeedback объединены в пару, чтобы при перемещении мыши над конечным местоположением перетаскивания отображались самые последние сведения о расположении мыши.

· Если значение DragAction равно Drop, значение эффекта перетаскивания возвращается источнику, благодаря чему исходное приложение может выполнить соответствующую операцию с исходными данными (например, вырезать данные, если это была операция перемещения).

· Если значение DragAction равно Cancel, происходит событие DragLeave.

По умолчанию событие QueryContinueDrag задает для свойства Action значение Cancel в объекте DragAction, если была нажата клавиша ESC, и задает для свойства Action значение Drop в объекте DragAction, если была нажата левая, средняя или правая кнопка мыши.

Дополнительные сведения об обработке событий см. в разделе Прием событий.

Примеры

В следующем примере кода показана операция перетаскивания между двумя элементами управления ListBox. В примере во время запуска действия перетаскивания вызывается метод DoDragDrop. Действие перетаскивания начинается, если во время события MouseDown мышь сместилась относительно своего положения больше чем на SystemInformation.DragSize. Метод IndexFromPoint применяется для определения индекса элемента, перетаскиваемого во время события MouseDown.


В этом примере также показывается использование пользовательских курсоров для операции перетаскивания. В данном примере требуется, чтобы в каталоге приложения имелось два файла курсоров: 3dwarro.cur и 3dwno.cur — первый для пользовательского курсора перетаскивания, а второй для курсора с запрещенным перетаскиванием. Пользовательские курсоры используются, если установлен флажок CheckBoxUseCustomCursorsCheck.Пользовательские курсоры задаются в обработчике событий GiveFeedback.

Состояние клавиатуры проверяется в обработчике события DragOver для правого элемента ListBox, чтобы на основании состояния клавиш SHIFT, CTRL, ALT или сочетания клавиш CTRL+ALT определить, какая операция перетаскивания будет выполнена. Расположение в элементе управления ListBox, куда будет перемещен объект, также определяется во время события DragOver. Если перетаскиваемые данные не относятся к типу String, для свойства DragEventArgs.Effect задается значение None в объекте DragDropEffects. Наконец, состояние перетаскивания отображается в объектеLabelDropLocationLabel.

Данные, перетаскиваемые в правый элемент управления ListBox, определяются в обработчике событий DragDrop, и значение типа String добавляется в соответствующее место списка ListBox. Если перетаскиваемый объект перемещается за пределы формы, то операция перетаскивания отменяется в обработчике событий QueryContinueDrag.

В данном фрагменте кода показано использование события QueryContinueDrag. Полный пример кода см. в описании метода DoDragDrop.

C#

C++

VB

private void ListDragSource_QueryContinueDrag(object sender, System.Windows.Forms.QueryContinueDragEventArgs e) { // Cancel the drag if the mouse moves off the form. ListBox lb = sender as ListBox; if (lb!= null) { Form f = lb.FindForm(); // Cancel the drag if the mouse moves off the form. The screenOffset // takes into account any desktop bands that may be at the top or left // side of the screen. if (((Control.MousePosition.X - screenOffset.X) < f.DesktopBounds.Left) || ((Control.MousePosition.X - screenOffset.X) > f.DesktopBounds.Right) || ((Control.MousePosition.Y - screenOffset.Y) < f.DesktopBounds.Top) || ((Control.MousePosition.Y - screenOffset.Y) > f.DesktopBounds.Bottom)) { e.Action = DragAction.Cancel; } }}

Сведения о версии







Date: 2015-05-22; view: 519; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию