2011-10-12 6 views
0

일반 "LaunchForm"함수를 작성한 사람이 있습니까? 폼을 열어 놓은 모든 메뉴 항목에 대해 동일한 코드를 여러 번 작성하는 대신 폼을 시작할 함수 하나를 작성하고 싶습니다.일반 개방형 폼 함수

팁이 도움이 될 것입니다.

그것의 윈폼 + vb.net

감사 TR

+0

난 당신이 이상 작성해야하고 다시 그래서 우리는 그것을 일반 제작에 도움을 줄 수 코드를 게시하는 것이 좋습니다. – ja72

+0

희미한 childForm 새로운 "는 FormName" childForm.MdiParent 나를 =으로 childForm.StartPosition = FormStartPosition.CenterScreen childForm.Show() 가 "는 FormName은"권리에 대해 보이는 30 개 가지 형태 – TeddyRuxpin

답변

2

다음과 같은 의미입니까?

C#을

public F Launch<F>() where F : Form, new() 
{ 
    F dlg = new F(); 
    dlg.MdiParent = this; 
    dlg.Show(); 
    return dlg; 
} 

VB.NET

Public Function Launch(Of F As {Form, New})() As F 
    Dim dlg As New F() 
    dlg.MdiParent = Me 
    dlg.Show() 
    Return dlg 
End Function 
+0

중 하나입니다. 무엇을 공개하겠습니까? F : Form, new() 은 (는) 다음 언어로 변환됩니다 : ()를 시작 하시겠습니까? – TeddyRuxpin

0

당신은 메뉴 항목의 .Tag 속성에 양식 유형을 첨부 할 수 있습니다. 하나의 이벤트 핸들러를 모든 메뉴 항목 클릭 이벤트에 연결하고 .Tag 속성 값 (양식 유형)을 새 인스턴스를 생성하고 표시 한 함수로 전달하십시오.

각 양식을 싱글 톤으로 만들려면 (MenuItem, Form) 사전을 만들고 양식 인스턴스를 미리 채우고 적절한 조회/표시를 수행 할 수 있습니다. 또는 사전, 팝 및 폼의 인스턴스를 menuitem의 .Tag 속성으로 건너 뛸 수도 있습니다.

다양한 옵션이 있으며 의도 된 용도를 알지 못하면 하나만 제안하기가 어렵습니다.