将变量传递到另一种形式

本文关键字:另一种 变量 | 更新日期: 2023-09-27 18:36:50

这可能很简单。这是一个班级的作业,似乎有几个版本的这个漂浮,以及一个答案的几个版本,但我不确定它们是如何工作的。 任务是创建两个表单。 一种是宿舍价格和餐费,第二种形式是显示总价。 我希望价格显示在价格窗体上的输入标签中。除了我不确定如何将信息从一个获取到另一个。 这是否需要我在计算器表单中的某个地方进行获取/设置?这是表格1(计算器)代码:

public partial class Calculator : Form
{
    Price myPrice = new Price();
    decimal dorm = 0;
    decimal meal = 0;
    public Calculator()
    {
        InitializeComponent();
    }
    private void getPriceButton_Click(object sender, EventArgs e)
    {
        decimal price = 0;
        getInput();
        price = dorm + meal;
        myPrice.ShowDialog();

    }
    private void getInput()
    {
        if(allenRadioButton.Checked)
        {
            dorm = 1500;
        }
        if(pikeRadioButton.Checked)
        {
            dorm = 1600;
        }
        if(farthingRadioButton.Checked)
        {
            dorm = 1800;
        }
        if(universityRadioButton.Checked)
        {
            dorm = 2500;
        }
        if(sevenRadioButton.Checked)
        {
            meal = 600;
        }
        if(fourteenRadioButton.Checked)
        {
            meal = 1200;
        }
        if(unlimitedRadioButton.Checked)
        {
            meal = 1700;
        }
    }

这是形式2(价格)代码:

public partial class Price : Form
{
    Calculator myCalulator = new Calculator();
    public Price()
    {
        InitializeComponent();
    }
    priceLabel.Text = price.myCalculator.TosString("c");
}

将变量传递到另一种形式

你可以以第二种形式制作一个价格变量,并将你的价格传递给价格形式的构造函数:

    public string price;
    public Price(string price)
    {
        this.price = price;
        InitializeComponent();
    }
    private void getPriceButton_Click(object sender, EventArgs e)
    {
        decimal price = 0;
        getInput();
        price = dorm + meal;
        Price myPrice = new Price(price)
        myPrice.ShowDialog();
    }

将价格作为参数传递给 Price 窗体的新参数化构造函数,并将其用于进一步的操作。

private decimal _price;
public Price(decimal pPrice)
{
  InitializeComponent();
  _price = pPrice;
  ...
}

此外,使用此新构造函数在按钮单击事件中实例化 myPrice 对象。 喜欢;

Price myPrice = new Price(price);
myPrice.ShowDialog();

有关将值从一种形式传递到另一种形式的其他方法,请参阅此链接;如何将值从一个窗体传递到另一个窗体?以及在 C# 中的窗体之间来回传递参数

您只需添加一个变量并将其在窗口窗体中公开即可。

public int PassValue

并在调用表单之前向其传递一个值

form1 obj = new form1();
obj.PassValue = 34;
obj.Show();