2013-07-19 2 views
0

내가 C++/CLR 비주얼 스튜디오 목표는 Home Page라는 형태로 사용자의 입력 값을 가지고있다 2012 년다른 숨겨진 양식 C에서 정보를 얻기 ++/CLR

에서 만드는 오전 윈도우 폼 응용 프로그램이 있습니다. 그런 다음 모든 정보가 채워지면 단추를 클릭하면 Home Page 양식이 숨겨지고 Setup Info이라는 두 번째 양식이 표시됩니다.

내가 도움이 필요한 부분은 Home Page의 정보가 Setup Info에 액세스 할 수 있어야합니다. 내 파일 설정 방법에 대한 아이디어를 얻으려면 내 C++ Windows Form 응용 프로그램을 만들려면 따라야 할 YouTube 비디오가 입니다. 에서

내 내 Setup Info.H

// When Setup Info is loaded button1 will have the text of textbox1 from Home Page Form. 
private: System::Void SetupInfo_Load(System::Object^ sender, System::EventArgs^ e) { 

    button1->Text = HomePage->Textbox1->Text; 
      } 

이것은 일반적인 생각이지만이 작동하지 않습니다에서 HomePage.h

// Button that will hide the Home Page Form and then show the SetupInfo Form. 
private: System::Void Start_Click(System::Object^ sender, System::EventArgs^ e) { 
       this->Hide(); 
       SetupInfo^ SetupInfo = gcnew ExcelToPPT::SeuUpInfo(); 
       SetupInfo->Show(); 

} 

. 어떻게 작동 시키나요?

추가 정보가 필요하면 알려주세요.

[편집] 나는이 통근 글로벌 변수를 통해 할 수,하지만 직접 텍스트 텍스트 상자에 액세스하는 또 다른 방법이

?

wen 내 Setup Information에서 빠져 나와 내 프로그램을 죽이지 않는 것 같은데 어떻게이 문제를 해결할 수 있습니까?

+0

이 표준 OOP 질문입니다. 사용자가보고있는 HomePage ** 객체 **에 대한 참조가 필요합니다. Start_Click 메소드에서 하나를 얻는 것은 매우 쉽습니다. * this *입니다. 따라서 SetupInfo 생성자로 전달하십시오. 더 나은 방법은 문자열 만 있으면되므로 전체 폼 클래스 객체를 전달하고 내부를 노출 할 필요가 없습니다. 문자열을 취하는 생성자를 사용하십시오. 또는 할당 할 수있는 공용 속성을 추가하십시오. –

답변

2

가장 간단한 방법은 아마도 홈 페이지 양식을 새 SetUpInfo 양식으로 전달하는 것입니다. SetUpInfo.h에서

private: System::Void Start_Click(System::Object^ sender, System::EventArgs^ e) { 
    this->Hide(); 
    SetUpInfo^ setUpInfo = gcnew ExcelToPPT::SetUpInfo(this); 
    setUpInfo->Show();         ^^^^ 
} 

:

public ref class SetUpInfo : Form 
{ 
private: 
    HomePage^ homePage; 

public: 
    SetUpInfo(HomePage^ homePage); 
}; 

SetUpInfo.cpp에서 :

SetUpInfo::SetUpInfo(HomePage^ homePage) 
{ 
    this->homePage = homePage; 
} 

void SetUpInfo::SetUpInfo_Load(System::Object^ sender, System::EventArgs^ e) 
{ 
    button1->Text = this->homePage->Textbox1->Text; 
}