2011-03-19 6 views
1

부모 winform에 패널을 추가했습니다. 상위 양식은 열릴 때 전체 창에서 최대화됩니다. 또한, 패널의 높이는 부모 형태와 동일한 크기, 즉 최대화 된 최대 창 상에있게된다. 이제 부모 폼의 menustrip 항목을 클릭하여 하위 폼을 열면 하위 폼이 패널 뒤에 숨겨져 보이지 않습니다. 즉, 보이지 않습니다. 패널 위로 가져 오는 방법?winforms의 패널 및 하위 폼

+1

부모 양식이 mdiParent입니까? –

+0

예, 상위 폼은 mdiParent – sqlchild

+0

가능한 중복 [C# .Net 패널 컨트롤 및 MDI 자식 폼 - 문제.] (http://stackoverflow.com/questions/5120568/c-net-panel-control-and-mdi- child-forms-issue) –

답변

1

기본적으로 양식은 MDI 상위 폼의 하위 항목 일 수 있습니다. 패널을 폼의 부모로 설정하려면 SetParent Win32API 함수를 사용해야합니다.

public partial class MDIParentForm: Form 
{ 
    [DllImport("user32.dll", SetLastError = true)] 
    static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); 

    public MDIParentForm() 
    { 
     InitializeComponent(); 
    } 

    private void AddChildWindowMenuItem_Click(object sender, EventArgs e) 
    { 
     var child = new MDIChildForm(); 
     child.Show(); 
     SetParent(child.Handle, BackgroundPanel.Handle); 
    } 
} 
+0

MDI 자식 창에는 불가능합니다. –

+1

방금 ​​시도해 봤는데 ... 나는 그것을 할 것이라고 생각한다. –

+0

나는 부모 모양이 두 개의 반쪽으로 나누어 져 있기를 바란다. 절반은 하위 폼에 대한 링크의 트리 뷰를 포함하고 나머지 절반은 트리 뷰의 링크를 클릭 할 때 하위 폼을 표시합니다. 어떻게해야합니까? 코드 – sqlchild