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

Passing value from two different forms into one main form in C#

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

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

例如,当我单击 btnInsertCustomer 时,frmCustomer 打开,我可以双击此表单中的 dataGridView。当我这样做时,它应该将字段 customerCode 的值插入到 frmMain 中的 txtCustomer 中。

然后我想点击 btnInsertProduct 并且 frmProduct 将打开,我可以双击 dataGridView 上的一行并将字段 productCode 的值插入到frmMain 中的 txtProduct 而不会丢失我之前插入的 txtCustomer 的值。

用我目前的方法,我只能从其中一个表单中获取一个值到我的主表单中。我将 txtCustomertxtProduct 的标识符分配给了 public。然后在 frmCustomerdataGridViewCellDoubleClick 事件上,我写了这段代码:

frmMain fr = new frmMain();
fr.txtCustomer = dgv1FrmCustomer.SelectedRows[0].Cells[1].Value.ToString();
fr.Show();

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

您只需在您的子表单上设置一些 properties 即可用于 get/set 值。

子窗体上的属性

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