gpt4 book ai didi

c# - Windows 窗体将 List 传递给新窗体

转载 作者:太空宇宙 更新时间:2023-11-03 23:06:40 26 4
gpt4 key购买 nike

如何将变量传递给另一个表单?

我创建了以下类:

class Cart
{
private string productName;
private int qtd;
private decimal price;

public decimal Price
{
get
{
return price;
}

set
{
price = value;
}
}

public string ProductName
{
get
{
return productName;
}

set
{
productName = value;
}
}

public int Qtd
{
get
{
return qtd;
}

set
{
qtd = value;
}
}
}

我有一个表格可以将值添加到我的购物车:

public partial class frmProducts : Form
{

List<Cart> cartList = new List<Cart>();

private void btnAddCart_Click(object sender, EventArgs e)
{
if(txtQtd.Text == "")
{
MessageBox.Show("Enter how many items do you want.", "Products", MessageBoxButtons.OK);
return;
}
if (Convert.ToInt32(txtQtd.Text) > Convert.ToInt32(lblQtd.Text))
{
MessageBox.Show("We onlye have " + lblQtd.Text + " items in stock.", "Products", MessageBoxButtons.OK);
return;
}

Cart cart = new Cart();
cart.ProductName = lblProductName.Text;
cart.Qtd = Convert.ToInt32(lblQtd.Text);
cart.Price = Convert.ToDecimal(lblPrice.Text);

cartList.Add(cart);
}
}

我有另一个可以与 cartList 一起使用的 WindowsForms。如何将 cartList 发送到新的 WindowsForms?

最佳答案

frmProcessCart成为您需要 cartList 的下一个表格继续。为此,您可以使用以下任何选项:

  • 获取List<Cart>在该表单的构造函数中:

这意味着您必须通过 cartList至于通过其构造函数的新表单,因此您将获得列表的相同实例,您也可以继续进行。在这种情况下,该表单的构造函数如下所示:

 public frmProcessCart(List<Cart> cartList)
{
// Something here if needed
}
  • 另一个选项是 make cartList作为静态字段:

在这种情况下,您可以访问 cartList从应用程序中的任何其他形式通过 frmProducts.cartList,您无需传递任何实例或创建 frmProducts 的任何实例.在这种情况下,cartList 的定义将是这样的

public partial class frmProducts : Form
{
public static List<Cart> cartList = new List<Cart>();
// Rest of code here
}

关于c# - Windows 窗体将 List 传递给新窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40966809/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com