문제

생성자 또는 Formload ()에 자식 양식을로드해야합니까?

컨트롤에 양식을 포함시키는 사용자 정의 클래스를 호출하는 코드가 있습니다. 나는 원래 자녀가 생성자 밖에서 형태를 선언 한 다음 formload ()에서 formpaint () 루틴을 호출하여 다음과 같은 양식을로드했습니다.

internal frmWWCMCPHost frmWWCMCPHost = new frmWWCMCPHost();
internal frmWWCEnrollmentHost frmWWCEnrollmentHost = new frmWWCEnrollmentHost();
internal frmWWCMemberHost frmWWCMemberHost = new frmWWCMemberHost();

public frmWWCModuleHost()
{
    InitializeComponent();        
}

private void frmWWCModuleHost_Load(object sender, EventArgs e)
{
    FormPaint();
}

public void FormPaint()
{
    WinFormCustomHandling.ShowFormInControl(frmWWCMCPHost, ref tpgMCP, FormBorderStyle.FixedToolWindow,-4,-2);
    WinFormCustomHandling.ShowFormInControl(frmWWCMemberHost, ref tpgMember, FormBorderStyle.FixedToolWindow, -4, -2);
    WinFormCustomHandling.ShowFormInControl(frmWWCEnrollmentHost, ref tpgEnrollment, FormBorderStyle.FixedToolWindow, -4, -2);

    // Call each top-Level (visible) tabpage's form FormPaint()
    frmWWCMCPHost.FormPaint();
}

이제 저는 사용자 정의 클래스와 관련하여 컨테이너 컨트롤에 형태를 임베딩하는 훨씬 더 나은 방법을 보여주었습니다. 여기.

내 질문은 예제가 생성자에 동시에 선언하는 것처럼 예제가 다음과 같이 선언하는 것처럼 어디로로드 해야하는지입니다.

public frmWWCModuleHost()
{
    InitializeComponent();
    WinFormCustomHandling.ShowFormInContainerControl(tpgCaseNotes, new XfrmTest());
}

이것은 훨씬 적은 코드입니다. 생성자에로드함으로써 훨씬 더 불필요한 리소스를 사용할 것인가? 내가 무엇을 얻을까요? 어떻게 결정합니까?

도움이 되었습니까?

해결책

흥미로운 질문 mr_mom. 내 권장 사항은 귀하의 생성자를 사용하여 하위 양식에 필요한 설정 만 수행하고 부모 Formload ()까지 하위 양식을로드하는 것입니다.

자원, 이익, 손실에 관해서는 ... 나는 모른다.

다른 팁

나는 Form의 생성자를 사용하는 것을 선호합니다. 나는 모든 것을 설정한다는 의미입니다 ~ 전에 후에는 양식이 표시됩니다.

외부 복잡성을 줄이면 가독성이 높아지고 가능한 오류가 줄어 듭니다.

탄젠트에서는 Throw EX를 사용하여 예외를 다시 줄이십시오. 통화 스택을 재설정합니다. 그냥 던지는 것만 사용하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top