从表单/对话框传递/保持/返回字符串 - C ++ / CLI

时间:2013-05-14 05:05:37

标签: winforms c++-cli

我正在尝试将对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副本的任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

tUserInput中重新分配SingleStringOKButton_Click不会更改UserInput,因为tUserInput只是UserInput的句柄,而不是对句柄的跟踪引用。更改UserInput的唯一机会是在SingleStringUI构造函数中。您可以提供一个访问器来代替TextBox中的字符串。