将数量金额文本框值从子窗体传递到父窗体上的变量

时间:2019-02-27 20:48:17

标签: c# winforms textbox parent-child

我的Windows窗体应用程序(销售点应用程序)的父窗体具有网格视图,其中包含来自数据库的数据,如“产品名称”,“数量”和“单价”(不包括“数量”,因为我将其默认值设置为1)。这是我的代码:

        string productName = dr[0];
        int quantity = 1;
        int unitPrice = Convert.ToInt32(dr[1]);

        DataGridViewRow row = new DataGridViewRow();
        row.CreateCells(dgvAllSoldItems);

        row.Cells[0].Value = productName;
        row.Cells[1].Value = quantity;
        row.Cells[2].Value = unitPrice;
        row.Cells[3].Value = (quantity * unitPrice);

        dgvAllSoldItems.Rows.Add(row);

我要允许我的用户根据需要更新特定项目的数量。我希望使用子窗体来完成此操作。子窗体上将有一个用于输入数量(自定义数量)的文本框。

我已经配置了子窗体,并且双击目标产品(数据网格视图行)后就可以显示它。我想要的是允许用户用自定义值替换主窗体上数量[int quantity = 1;]的默认值,该自定义值将放置在子窗体上的文本框中。

在将此自定义数量(文本框值)从子窗体传递到父窗体时,我只有一个问题。到目前为止,我已经使用以下代码将文本框值传递给父窗体,而且我很幸运能够在父窗体的公共方法[GetSoldItemQuantity]中获得文本框值。

public void GetSoldItemQuantity(string customQuantity)
    {
        string globalQuantity = customQuantity;
    }

在这一点上,我总是从string globalQuantity的子窗体中获得自定义数量值,但是我无法将此值分配回int quantity或用它替换其现有值。

这是我的子窗体上的按钮单击代码,该代码将自定义数量值从文本框传递到我的父窗体上的公共方法。

private void btnPassCustomQuantityToParentForm_Click(object sender, EventArgs e)
        {
            string newItemQuantity = txtCustomQuantity.Text;

            frmSale newSale = new frmSale();
            newSale.GetSoldItemQuantity(newItemQuantity);
            this.Close();
        }

如何在第一个代码段中将此自定义数量传递给默认值为1的数量变量?

1 个答案:

答案 0 :(得分:0)

您可以将textbox修饰符公开,这样,您就可以使用对子表单的引用从父表单访问textbox,而且,如果您希望整数值使用numeric up down而不是简单的话textbox。要将字符串转换为文本,可以在c#

中使用Convert.ToInt32Int32.TryParse方法