我正在做一个有7种形式的商店,表单1是商店的基础,带有图片框和一个文本框,说明我应该付多少钱。当我点击图片框中时,例如在T恤中,它会打开一个新表格,其中包含一些信息和一个按钮,说明"添加到购物车"。 基本上我想点击按钮"添加到购物车"然后Form2关闭并返回到表单1并在文本框中(显示我应该支付多少)显示该值。
答案 0 :(得分:1)
表单就像任何其他对象一样,你可以传递对它们的引用,并像对待任何其他方法一样调用它们。
例如,假设您在Form1
上公开了一个接受该值并更新UI的方法:
public void UpdatePayAmount(double amount)
{
// use the supplied value to update your text box
}
然后,您需要在点击“添加到购物车”按钮时从Form2
调用该方法。类似的东西:
form1Instance.UpdatePayAmount(someAmountValue);
因此,您的Form2
代码需要在某处变量中引用Form1
的实例。由于Form2
现在取决于Form1
,因此将该要求放在其构造函数中的合理位置。也许填充私人领域:
private Form1 form1Instance;
public Form2(Form1 form1)
{
form1Instance = form1;
}
现在Form2
在创建Form1
时需要引用Form2
实例,因此当单击按钮时,它可以调用该实例上的方法。因此,当您在Form1
代码中创建form2 = new Form2(this);
form2.Show();
时,您将提供该实例:
var root = JsonConvert.DeserializeObject<RootObject>(json);
var pickups = new Pickups {
pickups = root.pickups.Select(kvp =>
new Pickup {
Group = int.Parse(kvp.Key),
Values = kvp.Value
}
).ToArray()
};