Windows сохраняет курсор перетаскивания - PullRequest
1 голос
/ 21 мая 2010

У меня странная проблема, на которую, я надеюсь, кто-то мог столкнуться с некоторыми предложениями.

Я использую стороннюю библиотеку (GoDiagram), которая, кратко отражая ее, не является причиной проблемы. В результате я перетаскиваю файл на фоновый холст, который наследуется от класса Control. В момент перетаскивания файла через холст курсор меняется на курсор «перетаскивания», который, я уверен, просто обрабатывается основным элементом управления, а не самим холстом.

В этот момент холст вызывает событие, к которому я подключен. Это событие отображает модальное диалоговое окно. В этот момент курсор является обычной стрелкой. Однако, если я возвращаю фокус на рабочий стол, мой курсор все еще находится в состоянии «перетаскивания», и я не могу взаимодействовать с какими-либо значками на рабочем столе.

Кто-нибудь знает, почему может произойти нечто подобное? Или кто-нибудь знает, как я могу заставить курсор вернуться? Странно то, что кажется, что это курсор Windows, который не работает, и что курсор в моем приложении с этого момента в порядке. Если я закрою диалоговое окно, курсор вернется к нормальному курсору, где бы я ни находился.

Приветствия

1 Ответ

0 голосов
/ 21 мая 2010

Обычно, когда вы меняете тип курсора, вы сначала сохраняете предыдущее состояние курсора; измените на новый тип курсора, выполните работу, а затем, после того, как вы закончите, верните курсор к предыдущему типу курсора. Вот так каждый (каждое приложение) получает возможность манипулировать типом курсора, уважая другие приложения.

Кажется, почему-то, когда открывается новое модальное диалоговое окно, оно не сохраняет прежнее состояние курсора, не говоря уже о возврате к предыдущему типу курсора при событии закрытия диалога.

Итак, вы можете изменить тип курсора вручную, когда это диалоговое окно закрывается.

- EDIT -

Я перечитал ваш вопрос; и я совершенно не уверен (сейчас), правильно ли я вас понимаю.

Как я понимаю, событие, к которому вы подключены, отображает диалоговое окно, так значит ли это, что именно вы отображаете модальное диалоговое окно?

Если это так, пытались ли вы манипулировать событиями .MouseEnter и .MouseLeave для управления типом курсора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...