WinForms - 将值从一种形式传递到另一种形式

WinForms - Passing values from one Form to another

我在 WinForms 上有一个 GUI,里面有一些按钮和文本框。还有一个保存按钮,其中文本框的条目被写入 csv。到目前为止有效。现在我想创建第二个表单并将一些文本框从 Form1 移到其中。这也有效,但我想从 Form2 中的 Form1 读取文本框,但这是行不通的。这里的代码示例:

 public void SettingsSave_Click(object sender, EventArgs e)
    {
       Proc.setParams(LocationBox.Text, Convert.ToInt32(nFCBox.Text, usC),SourceFile.Text,Filename.Text,FilesLocation.Text
        Proc.saveCurrentSettings();
    } 

他找不到 "LocationBox.Text",因为这是来自 "Form1"。当我尝试使用 "Form1 form1 = new Form1();" 在按钮方法中创建对象的新实例时,他告诉我由于安全性 plane/tier 他无法访问它。我尝试将所有内容设置为 public,但仍然无效

您需要通过构造函数将参数从 Form1 传递到 Form2,因此您的 Form2 构造函数并将它们保存到 Form2 中的字段应该如下所示

String LocationBoxValue;
public Form2(String locationBoxValue,int fCBoxValue, String sourceFileValue, String filenameValue,String filesLocationValue)
{
this.LocationBoxValue = locationBoxValue; //and do the same for the remaining parameters
}

现在在 form1 中,当您尝试显示 form2 时,您的代码应该如下所示

Form2 dlg=new Form2(LocationBox.Text, Convert.ToInt32(nFCBox.Text, usC),SourceFile.Text,Filename.Text,FilesLocation.Text);
dlg.Show(); //Or ShowDialog()

终于可以通过保存的字段直接访问参数了