如何在c sharp windows表单应用程序中从表单2修改表单3中的值
本文关键字:表单 修改 应用程序 sharp windows | 更新日期: 2024-09-24 11:56:50
我正在创建一个由3个表单组成的简单ATMForm 1
包含3个按钮:余额和提款Form 2
是余额表单,当用户单击余额按钮时显示。它显示当前余额,默认值设置为5000,并显示在文本框中Form 3
是提款表单,当用户单击提款按钮时显示。它包含一个文本框,显示用户想要提取的金额和一个OK按钮。
我的问题是,当用户提取金额时,我将如何更改余额的值?
您应该使用AtmModel类来存储余额。
public class AtmModel
{
public int Balance { get; set; }
public void WithdrawBalance (int amount)
{
this.Balance -= amount;
}
}
您的主窗体应该有一个存储AtmModel的私有字段。此模型在视图的(窗体)构造函数中初始化。
从主窗体打开的每个附加窗体都应该有一个带有AtmModel参数的构造函数。
现在,您可以将模型传递给其他表单,您可以访问Balance属性和提款余额方法。
基本上是这样的:
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打开另一个表单。在您的提款表上,您现在可以在确定按钮上应用点击事件,以执行AtmModel.WarriveBalance,并在文本框中声明金额。
然而,这种设计远非完美,但它为您提供了一种解决问题的方法。
有关详细信息,请阅读:
Windows窗体入门
或
基于C#的模型-视图-控制器(MVC)模式
在提款表单中添加一个类似的方法
public int GetWithdrawalValue()
{
int withdrawalValue;
int.TryParse(textboxWithdrawal.Text, out withdrawalValue);
return withdrawalValue;
}
显示您的提款单模式
Form3 formWithdrawal = new Form3();
formWithdrawal.ShowDialog();
int valueToWithdraw = formWithdrawal.GetWithdrawalValue();
这就行了。