我有一个名为frmMain
的主要表单和两个名为txtCustomer
和txtProduct
的文本框以及两个名为btnInsertCustomer
和btnInsertProduct
的按钮。
然后我有两个名为frmCustomer
和frmProduct
的表单。在每种形式中,我都有一个dataGridView,它分别显示了客户和产品的信息。
我希望例如当我点击btnInsertCustomer
时frmCustomer
打开,我可以双击此窗体中的dataGridView。当我这样做时,它应该将字段customerCode
的值插入txtCustomer
中的frmMain
。
然后我想点击btnInsertProduct
,frmProduct
将会打开,我可以双击dataGridView
上的一行,并将字段productCode
的值插入{{在txtProduct
中1}},而不会丢失我之前插入的frmMain
的值。
使用我当前的方法,我只能从其中一个表单中获取一个值到我的主表单中。我将txtCustomer
和txtCustomer
的标识符分配给了公众。然后,在txtProduct
CellDoubleClick
的{{1}}事件中,我写了这段代码:
dataGridView
和frmCustomer
的相同代码。这种方法的问题是我只能从一个表单中获取数据。当我打开另一个表单并选择一行时,前一个文本框中的数据消失了。我想知道如何从两种表格中获取数据?
答案 0 :(得分:1)
您只需在子表单上设置一些可用于获取/设置值的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;
}