2013-07-17 2 views
0

나는 this post를 발견하고 앱이 부모 응용 프로그램의 컨텍스트 내에서만 유용 경우 나는 첫 번째 대답리팩터링 C# 응용 프로그램

2)에서 두 번째 옵션을하고 싶습니다 주어진 객체를 됨으로써 말 또는 다른 앱의 다른 인수 인 경우 작은 앱을 리팩터링하여 폼의 프로젝트가 부모 앱에서 참조하는 이되도록 할 수 있습니다. 그런 다음 부모 애플리케이션은 단순히 양식의 새로운 인스턴스를 생성하고 표시 할 수 있습니다 :

var childForm = new SmallAppForm(); 
childForm.Owner = this; //the child window will close when its owner does. 
childForm.Show(); 

나는 그것을 달성하기 위해해야 ​​할 것이 무엇 단계에 대한 몇 가지 질문이 있습니다.

전화하려는 앱은 here입니다.

클래스처럼이 응용 프로그램을 만들고 호출하는 주 (부모) 양식을 변경하려면 "부모"가 될 새 프로젝트를 추가하고 새 상위 폼에 Main을 추가하십시오. 그것은 응용 프로그램입니다. 그런 다음 내 마법사를 만들고 호출하기 위해 상위 폼에서 마법사를 시작하는 메뉴를 선택할 수 있습니까? 대한 의견

CreateUserContext context = new CreateUserContext(); 
CreateUserWizard wizard = new CreateUserWizard(context); 

감사합니다, 레슬리

답변

0

는 내가 뭘 할 것은 클래스 라이브러리 대신 윈폼 응용 프로그램에 작은 aplication을 tranform하는 것입니다. (솔루션 내의 프로젝트 일 수도 있고, 주 프로젝트에서 참조하는 프로젝트 일 수도 있습니다.) 그런 다음 상위 응용 프로그램은 작은 응용 프로그램을 참조하고 방금 new SmallAppForm()을 호출합니다.

물론 SmallAppForm은 public이어야합니다.

클래스 라이브러리는 프로젝트 유형입니다. 프로젝트를 만들 때 콘솔 응용 프로그램, Windows 응용 프로그램 양식, 클래스 라이브러리 및 기타 여러 가지가 될 수 있습니다. 따라서 클래스 라이브러리 유형으로 새 프로젝트를 만들어야합니다. 모든 소규모 애플리케이션 양식을이 프로젝트에 복사하고 클래스를 공개로 설정하십시오. (클래스 라이브러리에 program 클래스가 없습니다. 작성한 양식 및 기타 클래스 만 있습니다.)

+0

게시 한 후에 솔루션에 기존 프로젝트를 추가 할 수 있음을 알았으므로 추가 한 UserWizard 응용 프로그램을 열어 새 Master Form을 얻는 방법을 찾지 못했습니다. "클래스 라이브러리 추가"는 어떻게합니까? - 아, 그냥 새로운 수업을 추가하고 모든 것을 복사한다는 뜻인가요? – Leslie

+0

답변의 업데이트를 참조하십시오. –

+0

그 추가 정보를 가져 주셔서 감사합니다! 나는이 프로젝트에서 일할 기회를 얻으면 오늘 그것을 시도 할 것이다! – Leslie

1

클래스 라이브러리를 추가하고 SmallFormApp의 클래스를 넣으십시오. 이 클래스 라이브러리는 동일한 솔루션을 사용합니다. 그런 다음 ParentForm에서 이것을 참조하고 그 함수를 사용하십시오.