반응형
기본적으로는
- FormStartPosition.Manual 선택하고
- Mouse Up 이벤트에서 나오는 e.X, e.Y값으로 Dialog에 Location 값을 주면 되는데
듀얼모니터를 쓰는 경우, 무슨 모니터에서 시작인지는 안나오는 것 같다.
Mouse Up의 좌표값은 현재 모니터의 왼쪽 위를 기준으로 하는걸로 보임
DesktopLocation : Windows 데스크탑에서의 위치
그래서 Dialog를 열려는 현재 Form의 DesktopLocation 속성을 사용하려는데 여전히 동작 안함
알고보니 현재 Form은 MdiForm이라 자신이 속한 MdiParent가 Desktop으로 인식되는듯이 좌표값이 나온다.
DesktopLocation 속성을 사용할때 해당 폼이 MdiForm일 경우 자신의 ParentForm의 DesktopLocation을 사용해야 정상적으로 처리 가능
결과적으로 이렇게 작성했다.
다이얼로그View.StartPosition = FormStartPosition.Manual;
다이얼로그View.Location = new Point(this.ParentForm.DesktopLocation.X + e.X, this.ParentForm.DesktopLocation.Y + e.Y);
반응형
'백엔드 > C#' 카테고리의 다른 글
IList 또는 IListSource를 복합 DataBinding의 데이터 소스로 사용할 수 있습니다. (0) | 2019.07.12 |
---|---|
아이템을 삭제한 경우 BindingSource에 DataSource에 무엇을 넣나? (0) | 2019.05.23 |
Collection 캐스팅하기 (0) | 2019.02.27 |
Color <-> String 변환 (0) | 2019.02.21 |
통통한 화살표 그리기 (0) | 2019.02.20 |
댓글