-1

我正在尝试将对字符串的引用传递给显示用户输入对话框的表单,然后将输入字符串传回。我已经关注了其他几个问题,只是无法使语法正常工作。

我调用的表单/对话框如下所示:

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 中获取字符串副本的帮助表示赞赏。

4

1 回答 1

0

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

于 2013-06-25T21:10:07.283 回答