2012-06-07 2 views
1

저는 FoxPro로 작성된 프로그램을 마을 및 학교 세무 담당자가 사용하는 프로그램으로 다시 작성합니다. 불행히도, 나는 나가 이것을 배우고있다. 이 프로그램은 창을 모달로해야합니다. 사용자는 특정 경로를 따르고 한 번에 둘 이상의 창을 사용할 수 없습니다. 내가 열어주는 MDI 컨테이너 양식이 있습니다. 모든 어린이 양식이 거기에서 호출됩니다. 지금, 나는 자식 폼을 극대화하지 않으며, 그것은 다음과 같습니다가 극대화 아니에요으로C# WinForms에서 어떻게 아이의 컨트롤 막대를 제거 할 수 있습니까?

enter image description here

당신은, 스크롤 막대를 볼 수 있습니다. 나는 스크롤 막대를 다룰 것을 정말로 원하지 않는다. 그래서 나는 나의 폼 Login, child form으로 들어가서 WindowState를 최대화하도록 설정했다.

enter image description here

막대가 사라 스크롤, 자식 창 컨테이너 창에 완벽하게 적합하지만, 상단에 두 개의 제어 바 ... 컨테이너의 주요 일이있다, 그리고 :이 수 두 번째 작은 폼은 하위 폼에 대해 두 번째로 작은 컨트롤을 사용합니다. MaximizeBox, MinimizeBox, ShowIcon 및 ControlBox를 false로 설정해 보았습니다. 그리고 하위 폼의 텍스트를 삭제했지만 그 바는 여전히 있습니다. 작은 막대의 특정 버튼을 클릭하면 복제본이 사라집니다. 나는 두 번째 막대를 없애거나 그것에 대한 컨트롤을 숨길 수있는 방법을 찾고 있습니다 ... 또는 내가 생각하지 못한 것이 도움이 될 수 있습니다.

+3

가능한 복제본 [mdi 하위 창에 추가 닫기 버튼이있는 이유는 무엇입니까?] (http : // stackoverfl ow.com/questions/8516536/why-i-got-extra-close-button-on-mdi-child-window) – LarsTech

+0

코드 없이는 말할 수 없지만 @LarsTech와 함께 – Crisfole

+0

나를 위해 그것을 설정했습니다. 'AutoScroll = false' – Cullub

답변

6

UserControls를 사용하지 않는 이유는 Main Form에서 추가/제거 할 수 있으므로 Mdi Forms에 대한 오버 헤드가 발생하지 않습니다.

당신이 당신의 기본 폼에서 데이터를 전달하기 위해 설치 재산의 및 이벤트 UserControl을에 원하는 것입니다 신속하고 더러운 예 : UserControl을

public partial class Form1 : Form 
{ 
    UserControl1 login = new UserControl1(); 
    public Form1() 
    { 
     InitializeComponent(); 
     login.ExitEvent += new UserControl1.ExitEventHandler(login_ExitEvent); 

    } 

    void login_ExitEvent(object sender, EventArgs e) 
    { 
     panel1.Controls.Remove(login); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     panel1.Controls.Add(login); 
     login.BringToFront(); 
    } 
} 

Form1에

public partial class UserControl1 : UserControl 
{ 
    public delegate void ExitEventHandler(object sender, EventArgs e); 
    public event ExitEventHandler ExitEvent; 

    public UserControl1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     ExitEvent(this, new EventArgs()); 
    } 
} 
+1

@ user1442499 마크에 동의합니다. MDI는 매우 구체적인 유스 케이스가있는 도구입니다. 다른 방법으로 사용하려고하면 계속해서 고민하는 세부적인 문제에 직면하게됩니다. – Tergiver

+0

마크, 고마워요, 고마워요, 고마워요. 나는 이것이 내가 찾고있는 것이라고 생각한다. 18 개의 양식을 만들기 전에 요청했으면 좋겠습니다. + 웃음 + Lars, Load 이벤트로 이동하는 대답을 보았습니다.하지만 그렇게하면 도움이되지 않았습니다. 그래도 고마워. 모두 고마워. – user1442499

관련 문제