Безопасно ли запрашивать MousePosition для вычисления информации о попадании в обработчике событий - PullRequest
0 голосов
/ 12 мая 2011

Я использую управление сеткой DevExpress (C # /. NET WinForms) и обрабатываю событие двойного щелчка.

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

Обработчик двойного щелчка передает только EventArgs, поэтому нет информации о положении мыши, которую можно использовать для вычисления информации о попадании, где пользователь щелкал в сетке.

Для того, чтобы обойти этоЯ запрашиваю значение Control.MousePosition, преобразовываю его в координаты сетки и затем вычисляю информацию о попадании.

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

Пример кода внутри обработчика события

        // if the double click was fired outside a row then ignore it
        GridHitInfo gridHitInfo = GridView.CalcHitInfo(Grid.PointToClient(MousePosition));
        if (!gridHitInfo.InRow)
            return;

1 Ответ

2 голосов
/ 12 мая 2011

Да, это отлично работает.Любые обновления MousePosition происходят синхронно (т.е. они не меняются во время вызова вашего обработчика).

...