我的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的数量变量?
您可以将textbox
修饰符设置为public,这样您就可以通过引用子窗体从父窗体访问textbox
,而且如果您希望整数值使用numeric up down
而不是简单的textbox
。要将字符串转换为文本,您可以在c#中使用Convert.ToInt32
或Int32.TryParse
方法