繁体   English   中英

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

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

我有一个名为frmMain主要形式,在txtCustomertxtProduct上有两个文本框,以及两个名为btnInsertCustomerbtnInsertProduct按钮。

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

我想例如,当我点击btnInsertCustomerfrmCustomer打开,我可以双击以这种形式在DataGridView。 当我这样做时,应将字段customerCode的值插入frmMain txtCustomer中。

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

使用当前的方法,我只能从一种形式的值中获取一个值到我的主要形式中。 我将txtCustomertxtProduct的标识符分配给public。 然后,在CellDoubleClickdataGridViewfrmCustomer事件中,我编写了以下代码:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM