2013-05-14 1 views
-1

문자열에 대한 참조를 사용자 입력 대화 상자를 표시하는 양식에 전달한 다음 입력 문자열을 다시 전달하려고합니다. 나는 이것에 대한 몇 가지 다른 질문을 따라 왔으며 구문을 작동시킬 수 없다. 나는이 프로그램을 실행할 때양식/대화 상자에서 문자열 전달/유지/반환 - C++/CLI

 SV8::SingleStringUI^ TestMatch; 
     System::String^ UserInput; 

     TestMatch = (gcnew SV8::SingleStringUI(UserInput)); 

그러나, 문자열이 텍스트 상자에 입력 반환되지 않습니다

public ref class SingleStringUI : public System::Windows::Forms::Form 
{ 
public: System::String^ tUserInput; 

public: 
    SingleStringUI(void) 
    { 
     InitializeComponent(); 
    } 

    SingleStringUI(System::String ^% UserInput) 
    { 
     InitializeComponent(); 
     tUserInput = UserInput; 
    } 

private: System::Void SingleStringOKButton_Click(System::Object^ sender, System::EventArgs^ e) { 
     tUserInput = gcnew ystem::String(this->SingleStringTextBox->Text); 
} 

발신자는 다음과 같습니다처럼 전화

양식/대화 상자가 보인다 발신자. 필자가 보았던 다른 예는 tUserInput에 로컬 복사본을 저장할 때 문제가 있음을 나타냅니다. 텍스트 상자 밖으로 문자열의 사본을 받고 어떤 도움을 주셔서 감사합니다.

+0

사용자가 입력하기 전에 문자열에 액세스하려고합니다. 물론 작동하지 않습니다. 폼의 ShowDialog() 메서드를 사용하여 반환 한 후 문자열을 읽습니다. –

답변

0

재 할당 단지 UserInput에 핸들이 아닌 핸들을 추적 참조입니다 UserInputtUserInput 때문에 SingleStringOKButton_Click에서 tUserInput이 변경되지 않습니다. UserInput을 변경할 수있는 유일한 기회는 SingleStringUI 생성자에 있습니다. 대신 TextBox에서 문자열을 가져 오는 접근자를 제공 할 수 있습니다.

관련 문제