我有以下问题:我在Form1
其中打开了第二个位置Form2
。现在,我Button
在Form2
其中保存了来自文本框的条目,并将其保存到csv文件中。但是我也想保存一些条目Form1
。Textbox
来自的条目Form2
已保存,但来自Form1
的条目为空字符串。以下代码:
在Form1中:
public void showInputToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2(this);
form2.Show();
}
通过第一个表单打开第二个表单,并具有从Form1文本框中获取条目的功能:
public String getLocation()
{
return LocationBox.Text;
}
public String getFilesLoc()
{
return FilesLocation.Text;
}
在Form2中,我具有以下内容:
private Form1 m_form = null;
public Form2(Form1 f)
{
InitializeComponent();
m_form = f;
}
然后是获取条目并保存它们的函数:
private void button1_Click(object sender, EventArgs e)
{
Form1 form1 = new Form1();
proc.setParams(form1.getLocation(),getFilesLoc());
proc.saveCurrentSettings();
}
我忽略了其他参数。因此,Form2
可以正确读取from中的条目,但是from中的条目Form1
只是一个空字符串(“”)。我能做些什么?
在点击处理程序中,您将在此处创建一个新的 Form1
:
Form1 form1 = new Form1();
那将有空值-但是您想要从您在构造函数中保留引用的现有表单中获取值-因此请使用它!
private void button1_Click(object sender, EventArgs e)
{
proc.setParams(m_form.getLocation(), m_form.getFilesLoc());
proc.saveCurrentSettings();
}
(我强烈建议您开始遵循.NET命名约定,很有可能将这些get
方法转换为属性,并考虑将值传递到Form2
构造函数中,而不是Form1
引用本身。这取决于您是否需要“查看”任何更改对取得Form1
施工后Form2
)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句