我有两张表格。 Form1创建Form2,如下所示:
public partial class Form1 : Form
{
private void button3_Click(object sender, EventArgs e)
{
Form2 AcqForm = new Form2();
AcqForm.Show();
string[] ret = AcqForm.fulldate;
MessageBox.Show(ret[27]);
}
}
public partial class Form2 : Form
{
public string[] fulldate; //Created in form 2
close(); //Need to get this string back on or before close event
}
我该怎么做呢?
答案 0 :(得分:1)
您需要以第一种形式处理Form2实例的FormClosed
事件并访问公共属性。
答案 1 :(得分:0)
使用此代码段,您可以获得一些知识。
Form1 :中的
using(Form2 form2 = new Form2())
{
if(form2.ShowDialog() == DialogResult.OK)
{
MessagBox.Show(form2.fulldate);
}
}
在 Form2 :
public partial class Form2 : Form
{
public string[] fulldate {get; set;} // Create a Property
void CloseForm()
{
fulldate = "valueToReturn";
DialogResult = DialogResult.OK;
}
}
答案 2 :(得分:0)
假设您希望button3_Click
等到AcqForm
关闭才能访问fulldate
,您首先必须将AcqForm.Show();
更改为AcqForm. ShowDialog();
。 (Show()
并不等待它关闭。)
对于fulldate
字段 - 即使表单关闭后也可以访问它,因为表单仍然存在。 SLaks'关于它是一个'字段'意味着我们对不同类型的变量有不同的名称'。您在课堂上声明的内容(没有get
和set
)称为字段。方法中的变量称为变量'。
如果您仍希望在AcqForm
关闭时执行某些操作,请执行以下操作:
在Form1的构造函数中,在AcqForm. ShowDialog();
:
AcqForm.FormClosing += AcqForm_FormClosing;
在Form1&#39的课程中:
void AcqForm_FormClosing(object sender, FormClosingEventArgs e)
{
//Whatever will be here will be done when the form is closing.
//Use 'FormClosed' for doing things AFTER the form has closed.
}