2016-10-16 3 views
0

mdi 자식 폼의 위치를 ​​수정하고 싶습니다. 아무도 한 위치에서 다른 위치로 이동할 수 없도록합니다. 나는 다음과 같은 코드를 구현하려고하지만 여기 screen.width 나에게 오류를 제공하는 것은 내 코드입니다 : - 모듈에 장소 코드 :화면에서 mdichild 폼이 움직이거나 위치가 변경되는 것을 방지하는 방법

public Sub CenterMe(Myform as Form) 
    with Myform 
     Myform.Left = (Screen.Width - .Width)/2 
     Myform.Top = (Screen.Height - .Height)/2 ' - mdiMain.StatusBar.Height 
    End With 
End Sub 

이제 아이들의 폼로드 이벤트 - 전화 이런 식으로 :

Private Sub Form_Load() 
    'do some initialization stuff... 
    '... 
    Call CenterMe(me) 
End Sub 
+0

"screen.width에 오류가 발생합니다."오류가 있습니까? – ChrisF

답변

0

형태의 초기 위치가 설정되면, 당신은 폼의 위치가 최우선 폼의 WndProc 메서드를 통해 변경 될 방지하고이 같은 WM_MOVE 창 메시지를들을 수 있습니다.

protected override void WndProc(ref Message message) 
{ 
    const int WM_SYSCOMMAND = 0x0112; 
    const int SC_MOVE = 0xF010; 

    switch (message.Msg) 
    { 
     case WM_SYSCOMMAND: 
      int command = message.WParam.ToInt32() & 0xfff0; 
      if (command == SC_MOVE) 
       return; 
      break; 
    } 

    base.WndProc(ref message); 
} 
관련 문제