Windows Form에 DataGridviews가 있습니다. 작은 대화 상자를 사용하여 DataGridview에 레코드를 추가하고 있습니다. 사용자가 단추를 누르면 애니메이션이 적용되기를 원합니다. 로드됩니다. 나는잘못된 모양의 창에 서식 창이 나타나기 시작하는 동안
[DllImport("user32")]
static extern bool AnimateWindow(IntPtr hwnd, int time, int flags);
소스 사용하고 있습니다 : http://www.c-sharpcorner.com/UploadFile/kirtan007/761/
대화 상자가에서 애니메이션됩니다하지만, 화면의 왼쪽 상단. 또 다른 형태 그래서 나는 내 양식을 추가
//Set the Location negative values are being returned when my dialog appears
this.Location = new Point(LocationMainX + WidthOfMain, locationMainy + 10);
//Animate form
AnimateWindow(this.Handle, 750, AW_SLIDE | AW_HOR_POSITIVE);
내가 아이에게 자신의 위치를 통과하고있는 부모 폼에서
AddForm form = new AddForm (this.DesktopLocation)
form.ShowDialog(); //I have also noticed doing form.Show(); messes with the position of dialog
내 주요 양식로드 : 내가 추가 대화 상자의 Load 이벤트에 belowcode를 사용하고 상대 위치를 반환한다고 추측합니다. 그러나 나는 시도했다 :
AddForm form = new AddForm (this.Parent.DesktopLocation)
form.ShowDialog();
이 부정은 부정적인 값을 돌려 준다. 그러나 또한 부정확하다 (0,24)를 돌려 준다. 대화 상자가 상위 형식의 약 150 픽셀 위에 애니메이션으로 표시됩니다. 내가 양식 상대를 설정
너무 this.Parent.Parent.Location 그때가 바로 나타납니다, 그래서 내가 생각하는 응용 프로그램의 루트 부모를 접근보다는 this.parent.parent을하는 공식적인 방법이있다. ....
양식이 "잘못된 위치에 있음"에 대해 더 구체적으로 설명 할 수 있습니까? 너무 높거나 낮거나, 너무 멀리 왼쪽이나 오른쪽 또는 무작위입니다. 어디 있어야합니까? – ChrisF
"화면의 왼쪽 상단"이라는 질문을 업데이트했습니다. – PUG
제공 한 번호가 상위 창에 상대적입니까? 아마'LocationMainX'와'locationMainy'을 벗을 수 있을까요? – ChrisF