将变量从表单传递到表单,然后使用传递的数据创建类的新实例

时间:2015-01-01 19:35:13

标签: c# winforms forms

这是我的第一篇文章,所以要温柔。当我单击表单1中的按钮时,我尝试在表单2中创建具有特定变量的类的实例。然后获取现在在类的实例(测试)中的值并更改文本读取和进度生活栏在那些数字上。但是,当我运行应用程序时,文本和进度条转到0而不是正确的值。此外,当我退出表单2,然后再次单击表单1上的按钮,它工作正常。它好像测试实例正在更新,但表单2没有使用更新的值。如果我取i的值并按该量增加另一个进度条就可以了,所以我知道我正确地将值传递给Form 2。

编辑:删除了其他帖子,因为它出现在错误的论坛上。

Form1中:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Fight_Game
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void ChooseEasy_Click(object sender, EventArgs e)
    {
        Combat_Form cf = new Combat_Form(5,8,19/*Need to send a lot of shit through here like monster health, and image to use.*/);
        cf.ShowDialog();
    }
 }

表格2

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Fight_Game;

namespace Fight_Game
{
public partial class Combat_Form : Form
{
    static int i, j, k;
    public Combat_Form(int x, int y, int z)
    {
        InitializeComponent();
        i = x;
        j = y;
        k = z;
    }
    Class1 test = new Class1(i, j);

    private void button1_Click(object sender, EventArgs e)
    {
        EnemyLifeBar.Increment(i);
        PlayerLifeText.Text = "Life: " + test.Life.ToString() + "/100";
        PlayerLifeBar.Increment(test.Life);
    }


}
}

第1课:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Fight_Game
{
    class Class1
    {
        public int Life;
        public int Mana;

        public Class1(int x, int y)
        {
            Life = x;
            Mana = y;
        }
}

0 个答案:

没有答案