load ()를 형성하거나 load ()를 형성하지 않으려면
-
05-09-2019 - |
문제
생성자 또는 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를 사용하여 예외를 다시 줄이십시오. 통화 스택을 재설정합니다. 그냥 던지는 것만 사용하십시오.
제휴하지 않습니다 StackOverflow