[英]Passing value from two different forms into one main form in C#
我有一个名为frmMain
主要形式,在txtCustomer
和txtProduct
上有两个文本框,以及两个名为btnInsertCustomer
和btnInsertProduct
按钮。
然后,我有两种形式,分别称为frmCustomer
和frmProduct
。 在每种形式中,我都有一个dataGridView,分别显示客户和产品的信息。
我想例如,当我点击btnInsertCustomer
的frmCustomer
打开,我可以双击以这种形式在DataGridView。 当我这样做时,应将字段customerCode
的值插入frmMain
txtCustomer
中。
然后,我想单击btnInsertProduct
然后frmProduct
将打开,我可以双击dataGridView
上的一行,并将字段productCode
的值插入frmMain
txtProduct
中,而不会丢失我之前插入的txtCustomer
的值。
使用当前的方法,我只能从一种形式的值中获取一个值到我的主要形式中。 我将txtCustomer
和txtProduct
的标识符分配给public。 然后,在CellDoubleClick
的dataGridView
的frmCustomer
事件中,我编写了以下代码:
frmMain fr = new frmMain();
fr.txtCustomer = dgv1FrmCustomer.SelectedRows[0].Cells[1].Value.ToString();
fr.Show();
和frmProduct
的相同代码。 这种方法的问题是我只能从一种形式获取数据。 当我打开另一个表单并选择一行时,上一个文本框上的数据消失了。 我想知道如何从两种形式获取数据?
您只需要在子窗体上设置一些properties
即可用于获取/设置值。
子窗体的属性
public class ChildForm : Form
{
// FIELDS
private string customerName;
private string customerCode;
// PROPERTIES
public string CustomerName
{
get { return customerName; }
set { customerName = value; }
}
public string CustomerCode
{
get { return customerCode; }
set { customerCode = value; }
}
// FORM CLOSING
private void ChildForm_FormClosing(object sender, EventArgs e)
{
// SET VALUES
this.customerName = "name";
this.customerCode = "012345";
}
}
主窗体-调用子窗体并在关闭时获取值
using (ChildForm myChildForm = new myChildForm())
{
myChildForm.ShowDialog();
string returnedCustomerName = myChildForm.CustomerName;
string returnedCustomerCode = myChildForm.CustomerCode;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.