Как мне реализовать как щелчок, так и перетаскивание для одного элемента управления? - PullRequest
3 голосов
/ 31 августа 2011

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

Я знаю, как перетащить. Я не знаю простого способа «щелкнуть» огнем, так как запуск перетаскивания мышью вниз предотвратит его.

Есть ли простой способ сделать это?

Спасибо.

Ответы [ 3 ]

1 голос
/ 31 августа 2011

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

0 голосов
/ 31 августа 2011

Я никогда не делал этого, но вы могли бы ...

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

0 голосов
/ 31 августа 2011

Вы должны искать примеры того, как перетаскивать и перемещать элементы управления, я на самом деле делал это в Delphi looong назад (около 11 лет назад), и это было все о координатах мыши и флагах для установки на mouseDown и mouseUp.

Я нашел кое-что здесь: http://www.codeproject.com/KB/dialog/MoveYourControls.aspx может быть источником вдохновения для решения в .NET

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