我的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的数量变量?
答案 0 :(得分:0)
您可以将textbox
修饰符公开,这样,您就可以使用对子表单的引用从父表单访问textbox
,而且,如果您希望整数值使用numeric up down
而不是简单的话textbox
。要将字符串转换为文本,可以在c#
Convert.ToInt32
或Int32.TryParse
方法