Hallo zusammen
Ich hoffe das ich die richtige Sparte getroffen habe, wenn nicht bitte verschieben.
Folgendes Problem habe ich: Ich möchte in einen Programm mit 2 Forms eine INT Variable vor den öffnen der 2 Form mit einen Wert beschreiben und in einen Label der Form 2 anzeigen. Das Problem besteht darin, das in den Label der Wert 0 angezeigt wird obwohl ich in Form 1 der Variable eigentlich den Wert 35 zuweise. Bitte kann mir jemand erklären was ich falsch mache?! Das Programm ist nur eine Übung. Die technik wird aber später in einen andern größeren Projekt zu Anwendung kommen. wenn ich das ganze mit eigener Membervariable probiere funktion niert das tadellos. Nur nicht mit Interface.
Anbei mal der Code zum drüberschauen. Bin noch Anfäger im eigen Studium also bitte nicht über vielleicht sonderbare Programmierung wundern.
Dies ist der Code für die 2. Form, die die Variable Id2 anzeigen soll.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| public partial class Form2 : Form { public Form2(Form1 f) { InitializeComponent(); this.form1 = f; }
Dataconnection d = new Dataconnection();
private Form1 form1 = null;
private void Form2_Load(object sender, EventArgs e) { int i = d.Id2; this.label1.Text = d.Id2.ToString(); }
private void button1_Click(object sender, EventArgs e) { this.form1.Id = 22; } } } |
Das ist die "externe" Klasse mit Interface
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33:
| namespace Tatenaustausch { class Dataconnection: IAustausch { private int id1; private int id2;
public int Id1 { get { return this.id1; } set { this.id1 = value; } } public int Id2 { get { return this.id2; } set { this.id2 = value; } }
} public interface IAustausch { int Id1 { get; set; } int Id2 { get; set; } } } |
Form 1 mit Button zum Öffnen von Form 2
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| namespace Tatenaustausch { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
Dataconnection d = new Dataconnection();
public int Id { get { return Convert.ToInt32(this.label1.Text); } set { this.label1.Text = value.ToString(); } }
private void button1_Click(object sender, EventArgs e) { Form2 form2 = new Form2(this); d.Id2 = 35; int i = d.Id2; form2.Show(); } } } |
Vielen dank für Eure Mühe und Tipps im voraus.
Gruß Thomas