【发布时间】:2017-06-01 19:28:48
【问题描述】:
我正在使用 C# WinForms 应用程序制作一个 POS 系统,并且有一个 Form1(主屏幕)和一个 Checkout 屏幕(可以认为是 Form2)。在Form1 中有一个方法叫做clearSale()。我正在尝试通过Form2 中的此按钮事件调用它:
private void btnProccessComplete_Click(object sender, EventArgs e)
{
MessageBox.Show("Order Successfully Processed for: $" + checkoutTotal.ToString("F2"), "Successful Payment", MessageBoxButtons.OK, MessageBoxIcon.Information);
readyStock(checkoutItems);
isCheckoutComplete = true;
Form1 myObj = new Form1();
myObj.clearSale();
this.Close();
}
在此事件完成后,它会从 Form1 调用 clearSale() 方法:
public void clearSale()
{
itemList.Items.Clear();
txtUPCScan.Clear();
orderTotal = 0.00;
lblTotalPrice.Text = "$0.00";
picPay.Enabled = false;
myShoppingCartItems = null;
myShoppingCartItems = new string[250];
totalItems = 0;
}
clearSale() 方法几乎只是将所有 txtboxes 设置回空状态,并使所有内容再次焕然一新。我的问题是,每当在Form1 中调用clearSale() 方法时,它都会起作用,但是当在Form2 中调用它时(就像我试图让它那样),我的主页上没有任何变化。就像该方法几乎没有被调用一样。一切都保持不变,不会被清除。有什么帮助吗?
【问题讨论】:
-
您正在实例化一个新的
Form1,而不是使用正在显示的Form1的实例 -
谷歌你的问题标题。您会发现数百个相同的问题和答案。
标签: c# database winforms linq methods