如何修改窗体3中窗体2的值c sharp windows窗体应用程序
我正在创建一个由3个窗体组成的简单ATM。 Form 1
包含3个按钮:平衡和提取。 Form 2
是余额表格,当用户点击余额按钮时显示。它显示当前余额,默认值为5000,并显示在文本框中。 Form 3
是提款表单,当用户点击提款按钮时显示。它包含用户想要撤回金额的文本框以及Okay按钮。如何修改窗体3中窗体2的值c sharp windows窗体应用程序
我的问题是如何在用户提取金额时更改余额的值?
您应该使用AtmModel类来存储余额。
public class AtmModel
{
public int Balance { get; set; }
public void WithdrawBalance (int amount)
{
this.Balance -= amount;
}
}
您的主窗体应该有一个存储您的AtmModel的私有字段。这个模型在View的(Form)构造函数中被初始化。
从主窗体打开的每个附加窗体都应该有一个带AtmModel参数的构造函数。
现在您可以将模型传递给其他表单,您可以访问Balance属性和WithdrawBalance方法。
所以basicly这样的:
public partial class AtmMainView : Form
{
AtmModel model;
public AtmMainView()
{
InitializeComponent();
this.model = new AtmModel();
}
private void Withdraw_Click(object sender, System.EventArgs e)
{
AtmWithdrawView form = new AtmWithdrawView(this.model);
form.Show();
}
}
所以,当你点击你的提款主窗体上按钮,你所引用的AtmModel打开你的其他形式。在您的WithdrawForm您现在可以在确定按钮上应用单击事件,执行AtmModel.WithdrawBalance,并在您的文本框中声明数量。
然而,这种设计并不完美,但它为您提供了解决问题的方法。
欲了解更多信息,请阅读:
Getting Started with Windows Forms
或
The Model-View-Controller(MVC) Pattern with C#/WinForms
在您的取款表格添加一个方法类似
public int GetWithdrawalValue()
{
int withdrawalValue;
int.TryParse(textboxWithdrawal.Text, out withdrawalValue);
return withdrawalValue;
}
显示您的取款单模式
Form3 formWithdrawal = new Form3();
formWithdrawal.ShowDialog();
int valueToWithdraw = formWithdrawal.GetWithdrawalValue();
这应该做的伎俩。
谢谢@stefankmitph – Ricardo 2015-03-04 11:41:03
谢谢主席先生...... – Ricardo 2015-03-04 11:31:34
先生我应该如何去显示和文本框设置的默认值5000平衡形式? – Ricardo 2015-03-04 12:13:46
从现在开始你有一个模型,它在所有表单之间共享。您可以访问它的Balance属性。所以在你的模型构造函数中,你可以设置this.Balance = 5000然后在你的平衡形式中,你可以设置textbox.text = this.model.Balance。 使用数据绑定的更好的做法,但如果您不熟悉它,那么就坚持我之前提到的。 – 2015-03-04 13:13:05