Ich habe Probleme mit mehreren Klassen auf C# zu arbeiten. Ich habe eine Klasse, die einen Wert und ein Verfahren wie diese:C# - Erhalten Sie Wert von einer anderen Klasse
Class class1
{
int curValue = 0;
Public int curValue
{
get {return curValue; } set{curValue = value; }
}
Class1()
{
}
public void Work()
{
while(//condition)
curValue++;
//some other code
}
}
Und ich brauche zweimal Wert aus dieser Klasse zwei Form erhalten: die erste Form eine Schaltfläche hat die Variable class1 die aktivieren
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()
}
}
Das Problem passieren, wenn ich einen anderen Form2 schaffen, in dem der Wert von class1 auf einem Etikett nehmen:
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;
}
}
Der Text des Etiketts nicht erhöht hat, wie ich wollte. Ich habe sogar überprüft, indem ich ein ähnliches Label auf Form1 erstellt habe und es funktioniert gut. Bitte helfen Sie mir, dass es auf Form2 funktioniert, Danke!
In dem von Ihnen geposteten Code erstellen Sie bei jedem Klick auf eine Schaltfläche eine neue Instanz von 'Class1'. Der Zeitgeber wird daher auf 0 gesetzt und dann jedes Mal auf 1 erhöht. –
* "Der Text des Labels ist nicht so groß geworden, wie ich es wollte" * Was wollten Sie haben? Was war es? –
Haben Sie überprüft, dass der form2_load-Code ausgeführt wird? – Scrobi