我正在尝试将对String的引用传递给Form,该Form显示用户输入的Dialog,然后将输入String传回。我已经关注了其他几个问题,但是无法使语法工作。
我打电话的表格/对话框如下:
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);
}
来电者看起来像:
SV8::SingleStringUI^ TestMatch;
System::String^ UserInput;
TestMatch = (gcnew SV8::SingleStringUI(UserInput));
但是,当我运行它时,输入TextBox的字符串不会返回给调用者。我看到的其他示例表明问题是我在tUserInput中存储本地副本。有关从TextBox中获取String副本的任何帮助表示赞赏。
答案 0 :(得分:0)
在tUserInput
中重新分配SingleStringOKButton_Click
不会更改UserInput
,因为tUserInput
只是UserInput
的句柄,而不是对句柄的跟踪引用。更改UserInput
的唯一机会是在SingleStringUI
构造函数中。您可以提供一个访问器来代替TextBox中的字符串。