将变量传递给另一种形式

时间:2009-07-23 19:34:42

标签: c# winforms

我正在用c#开发一个Windows应用程序。我使用了三个十进制变量:counternarrowbroad,它们根据一些计算存储不同的值。

单击按钮时,将显示一个消息框,显示这三个十进制值,然后应用程序退出..

现在我想添加另一个具有三个标签的表单,其中需要显示这些变量值。请解释一下,如何将下一个表格中的变量传递给各个标签?

5 个答案:

答案 0 :(得分:3)

一种方法是在第二种形式中创建一个新的构造函数。你可以使用第二种形式的那些值。

public Form2(decimal x, decimal y, decimal z):this()
{
   this.TextBox1.Text = Convert.ToString(x);
   this.Label1.Text = Convert.ToString(y);
   etc...
};

从主要表格

Form2 frm2 = new  Form2(x,y,z);
frm2.Show();

答案 1 :(得分:1)

最简单的方法是添加一个新方法,让我们称之为ShowWithDetails:

    public void ShowWithDetails(double Counter, double Narrow, double Broad)
    {
        CounterLabel.Text = Counter.ToString();
        NarrowLabel.Text = Narrow.ToString();
        BroadLabel.Text = Broad.ToString();

        ShowDialog();
    }

答案 2 :(得分:1)

创建新表单...

public class CalculationResultForm : Form
{
    public CalculationResultForm(){}

    public decimal Counter
    {
        set { labelCounter.Text = value.ToString(); }
    }
    public decimal Broad
    {
        set { labelBroad.Text = value.ToString(); }
    }
    public decimal Narrow
    {
        set { labelNarrow.Text = value.ToString(); }
    }

    private void OkButton_Click(object sender, EventArgs e)
    {
        // This will close the form (same as clicking ok on the message box)
        DialogResult = DialogResult.OK;
    }
}

然后在现有表单按钮内单击处理程序...

private void MyButton_Click(object sender, EventArgs e)
{
    CalculationResultForm resultForm = new CalculationResultForm();
    resultForm.Counter = _counter;
    resultForm.Narrow = _narrow;
    resultForm.Broad = _broad;

    resultForm .ShowDialog();

    Application.Exit();
}

答案 3 :(得分:0)

一种简单的方法是使用属性。您要将值传递给的表单只是另一个类。

将这样的内容添加到第二种形式:

public int counter {get; set;}

然后从第一种形式开始,你就可以按照

的方式做点什么
Form2 form2 = new Form2();
form2.counter = 1;
form2.ShowDialog();

或类似的东西。

答案 4 :(得分:0)