이벤트 처리기에서 HIT 정보를 계산하기 위해 MousePosition을 쿼리하는 것이 안전합니까?

StackOverflow https://stackoverflow.com/questions/5976473

  •  12-11-2019
  •  | 
  •  

문제

DevExpress 그리드 컨트롤을 사용하고 두 번 클릭 이벤트를 처리하고 두 번 클릭 이벤트를 처리합니다.

기본적으로 그리드는 그리드 헤더와 데이터 행을 두 번 클릭하면 이벤트를 시작합니다.

더블 클릭 핸들러는 EventArgs를 전달하므로 사용자가 그리드에서 클릭 한 위치의 히트 정보를 계산하는 데 사용할 마우스 위치 정보가 없습니다.

이 라운드를 얻으려면 Control.MousePosition 값을 쿼리하여 그리드 좌표로 변환 한 다음 히트 정보를 계산합니다.

이 모든 것이 잘 작동하지만 이벤트 핸들러 동안 이와 같이 마우싱을 쿼리하는 데 위험이 있습니까?

이벤트 핸들러 내부의 예제 코드

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

도움이 되었습니까?

해결책

예, 이것은 잘 작동합니다.MousePosition에 대한 모든 업데이트는 동 기적으로 발생합니다 (즉, 핸들러 호출 중에 변경되지 않음).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top