在C#中将两种不同形式的值传递给一个主要形式

时间:2015-07-06 12:17:13

标签: c# forms datagridview parameter-passing

我有一个名为frmMain的主要表单和两个名为txtCustomertxtProduct的文本框以及两个名为btnInsertCustomerbtnInsertProduct的按钮。

然后我有两个名为frmCustomerfrmProduct的表单。在每种形式中,我都有一个dataGridView,它分别显示了客户和产品的信息。

我希望例如当我点击btnInsertCustomerfrmCustomer打开,我可以双击此窗体中的dataGridView。当我这样做时,它应该将字段customerCode的值插入txtCustomer中的frmMain

然后我想点击btnInsertProductfrmProduct将会打开,我可以双击dataGridView上的一行,并将字段productCode的值插入{{在txtProduct中1}},而不会丢失我之前插入的frmMain的值。

使用我当前的方法,我只能从其中一个表单中获取一个值到我的主表单中。我将txtCustomertxtCustomer的标识符分配给了公众。然后,在txtProduct CellDoubleClick的{​​{1}}事件中,我写了这段代码:

dataGridView

frmCustomer的相同代码。这种方法的问题是我只能从一个表单中获取数据。当我打开另一个表单并选择一行时,前一个文本框中的数据消失了。我想知道如何从两种表格中获取数据?

1 个答案:

答案 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;
}