2012-02-22 2 views
1

내 하위 양식 중 하나에 창 슬라이드를 추가하려고합니다. 이 작은 부분이 내 앱에서하는 일에 대해 간략하게 설명해 드리겠습니다.user32 AnimateWindow 올바른 양식을 밀어 넣지 않는 기능

IP 주소의 범위에 사용자 유형이 있습니다. 앱에서 모든 핑을 수행하고 결과를 새로운 형식 (동적으로)으로 표시합니다.

다음은 작동 방법입니다. 사용자가 핑을 한 번 실행하면 슬라이드 애니메이션과 관련하여 아무 것도 발생하지 않습니다. 그러나 사용자가 결과 양식에서 "다시 시도"컨트롤을 클릭하면 새 결과 창이 이전 결과 양식의 오른쪽에서 벗어납니다. (명명 : Ping_Form) 결과 양식에

는 :

[DllImport("user32")] 
    static extern bool AnimateWindow(IntPtr hwnd, int time, int flags); 
    //Constants 
    const int AW_SLIDE = 0X40000; 
    const int AW_HOR_POSITIVE = 0X1; 
    const int AW_HOR_NEGATIVE = 0X2; 
    const int AW_BLEND = 0X80000; 


void ping_Form_Load(object sender, EventArgs e) 
     { 
     bool is_Open = false; 

     FormCollection fc = Application.OpenForms; 
     foreach (Form f in fc) 
      { 
      if (f.Name == "PSE") 
       is_Open = true; 
      } 
     if (is_Open == false) 
      return; 
     //Load the Form At Position of Main Form 
     int WidthOfMain = Application.OpenForms["PSE"].Width; 
     int HeightofMain = Application.OpenForms["PSE"].Height; 
     int LocationMainX = Application.OpenForms["PSE"].Location.X; 
     int locationMainy = Application.OpenForms["PSE"].Location.Y; 

     //Set the Location 


     this.Location = new Point(LocationMainX + WidthOfMain, locationMainy + 10); 

     //Animate form 
     AnimateWindow(this.Handle, 500, AW_SLIDE | AW_HOR_POSITIVE); 


     } 

을하지만 핑 방법을 실행할 때, 빈 양식을 만들고 슬라이드 아웃되지만 결과 양식 나는로드 이벤트에 다음을 추가 그냥 정상적으로 보입니다.

이 분야에서 어떤 디렉터 나 조언이 도움이 될 것입니다. 정말 고마워!

+0

누구나 컨텍스트에 대한 코드가 더 필요하면 알려주고 더 많이 게시 할 것입니다.이 애플리케이션은 약 1500 라인이므로이 쿼리와 관련이 없으므로 모든 것을 게시하고 싶지는 않습니다. – Botonomous

답변

0

this.Show();를 호출 해보십시오. AnimateWindow를 호출 한 후

+0

this.show()를 추가하려고했지만 아무 것도하지 않습니다 ... 문제는 form_Load 이벤트에 있습니다 ... 어떤 아이디어입니까? – Botonomous