如何在c sharp windows表单应用程序中从表单2修改表单3中的值

本文关键字:表单 修改 应用程序 sharp windows | 更新日期: 2024-09-24 11:56:50

我正在创建一个由3个表单组成的简单ATM
Form 1包含3个按钮:余额和提款
Form 2是余额表单,当用户单击余额按钮时显示。它显示当前余额,默认值设置为5000,并显示在文本框中
Form 3是提款表单,当用户单击提款按钮时显示。它包含一个文本框,显示用户想要提取的金额和一个OK按钮。

我的问题是,当用户提取金额时,我将如何更改余额的值?

如何在c sharp windows表单应用程序中从表单2修改表单3中的值

您应该使用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();

这就行了。