我在WinForms上有一个GUI,里面有一些按钮和文本框。还有一个保存按钮,文本框中的条目被写入csv。这到目前为止工作。现在我想创建第二个Form并将一些Textbox从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();”按钮方法创建对象的新实例时他告诉我,由于安全飞机/等级,他无法访问它。我试图将所有内容设置为公开,但仍然无效
答案 0 :(得分:2)
您需要通过构造函数将您的参数从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()
最后,您可以直接通过已保存的字段
访问参数