2017-06-13 44 views
-2

我在使用c#上的多个类时遇到问题。我有一个类,有一个价值,这样的方法:C# - 从另一个类中获取价值

Class class1 
{ 
    int curValue = 0; 
    Public int curValue 
    { 
     get {return curValue; } set{curValue = value; } 
    } 

    Class1() 
    { 

    } 

    public void Work() 
    { 
     while(//condition) 
      curValue++; 
     //some other code 
    } 
} 

,我需要两次获得价值从这个类两种形式: 第一种形式有一个按钮,激活的Class1的变量

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 
    OnButtonBtn_Click(Object sender, EventArgs e) 
    { 
     Class1 a = new Class1(); 
     a.Work(); 
     Form2 form2 = new Form2(a); 
     form2.show() 
    } 
} 
因为我想

public partial class Form2 : Form 
    { 
     Class1 b; 
     public Form2(Class1 input) 
     { 
      b = input; 
      InitializeComponent(); 
     } 
     private void Form2_Load(object sender, System.EventArgs e) 
     { 
      lb.Text = b.curValue; 
     } 
    } 

标签的文本并没有增加:

的问题,当我创建另一个窗体2从哪里拿的Class1价值的标签发生。我甚至通过在Form1上创建一个类似的标签进行检查,并且它工作正常。请帮助我在Form2上工作,谢谢!

+3

在您发布的代码中,您在每次点击按钮时创建一个'Class1'的新实例,因此计时器设置为0,然后每次都增加到1。 –

+1

*“标签的文字没有增加,因为我想要”*你想要它是什么?它以前如何? –

+0

你检查了form2_load代码是否正在执行? – Scrobi

回答

1

在你的代码贴出来,你创建的Class1每个按钮上点击一个新的实例,所以计时器设置为0 然后增加至每次。

如果您想要增加每个按钮单击的相同计数器,您可以将Class1 a = new Class1();行放在OnButtonBtn_Click方法之外。

该代码还存在其他一些问题,但它们不在此问题的范围内。我想这是一个测试代码,而不是一个实际的程序。