【问题标题】:passing a variable into another form将变量传递到另一种形式
【发布时间】:2016-02-29 18:09:45
【问题描述】:

这可能很简单。这是一个班级的作业,似乎有几个版本的浮动,以及几个版本的答案,但我不确定它们是如何工作的。任务是创建两个表格。一种是宿舍价和餐价,第二种是显示总价。我希望价格显示在价格表单上的输入标签中。除了我不确定如何从一个到另一个获取信息。这是否需要我在我的计算器表单中的某处进行获取/设置? 这是表格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;
        }
    }

这是form2(价格)代码:

public partial class Price : Form
{
    Calculator myCalulator = new Calculator();

    public Price()
    {
        InitializeComponent();
    }

    priceLabel.Text = price.myCalculator.TosString("c");
}

【问题讨论】:

标签: c#


【解决方案1】:

您可以在第二种形式中创建价格变量并将您的价格传递给价格形式的构造函数:

    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 构造函数中使用它并在创建 myPrice 期间传递它,我犯了一个错误 - 您的情况应该是小数,而不是字符串。
  • 太酷了,我发现了它,我已经让它的一部分工作了,我现在还有其他错误。你真棒
  • 谢谢)如果这是正确的答案 - 标记它以便所有人都可以看到案件已解决。
【解决方案2】:

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

private decimal _price;

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

还可以使用这个新的构造函数在您的按钮单击事件中实例化 myPrice 对象。喜欢;

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

关于将值从一种形式传递到另一种形式的其他方式,请参考此链接; How can I pass values from one form to another? 还有Passing Parameters back and forth between forms in C#

【讨论】:

  • 谢谢大家......你不知道这在短时间内让我走了多远。谢谢
【解决方案3】:

您可以通过添加一个变量并像这样在 Windows 窗体中公开它来做到这一点。

public int PassValue

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

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

【讨论】:

    猜你喜欢
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-16
    • 2015-06-23
    相关资源
    最近更新 更多