Datenweitergabe mit einer class

09/07/2009 - 10:17 von HaJo | Report spam
Hallo,
Ich habe ein Problem mit der Übergabe von einer Variablen von form1 an
form2.
Ich habe folgendes versucht:

//**************
// die class Variable
//**************
namespace Variablen
{
public class Variablen
{
private String Uebergabe="";
public String uebergabe
{
get { return Uebergabe; }
set { Uebergabe = value; }
}
}
//**************
// form1
//**************
private void button1_Click(object sender, EventArgs e)
{
Variablen v = new Variablen() ;
v.uebergabe = textBox1.Text;
Form2 f2 = new Form2();
f2.Show ();
this .Hide ();
}
//**************
// form2
//**************
private void Form2_Load(object sender, EventArgs e)
{
Variablen v = new Variablen();
textBox1.Text = v.uebergabe;
}

Der Compiler zeigt keine Fehlermeldung an.
Nur wird Inhalt nicht an form2 übergeben. Was habe ich falsch gemacht?

Ich habe mir mehrer Bücher gekauft. Nur gute Hilfe habe ich nicht
gefunden und englisch ist leider nicht mein Ding.

Ich hoffe das mir jemand meinen Fehler zeigen kann, so das ich es auch
verstehe.

Vielen Dank Hajo
 

Lesen sie die antworten

#1 Alexander Mueller
09/07/2009 - 10:30 | Warnen spam
HaJo schrieb:

Ich habe ein Problem mit der Übergabe von einer Variablen von form1 an
form2.

//**************
// form1
//**************
private void button1_Click(object sender, EventArgs e)
{
Variablen v = new Variablen() ;
v.uebergabe = textBox1.Text;
Form2 f2 = new Form2();
f2.Show ();
this .Hide ();
}
//**************
// form2
//**************
private void Form2_Load(object sender, EventArgs e)
{
Variablen v = new Variablen();
textBox1.Text = v.uebergabe;
}

Der Compiler zeigt keine Fehlermeldung an.
Nur wird Inhalt nicht an form2 übergeben. Was habe ich falsch gemacht?



Du erzeugst eben *zwei* verschiedene Objekte vom Typ Variablen.
Das erste in Form1.button1_Click, das bekommt wie gewünscht den
textBox1.Text an "uebergabe" zugewiesen.
Davon weiss Form2 aber nichts.
In Form2 gibt ein weiteres Variablen-Objekt, das als
"uebergabe"-Property einfach den Initialen Leerstring enthàlt.

Die Lösung ist: Du braucht nur *ein* Variablen-Objekt, und das musst
auch *übergeben*, von Form1 nach Form2.
Dazu brauchst Du in Form2 eine Übergabe-Möglichkeit, am besten damit es
bindend ist, den C'tor erweitern.

MfG,
Alex


//**************
// form1
//**************
private void button1_Click(object sender, EventArgs e)
{
Variablen v = new Variablen() ;
v.uebergabe = textBox1.Text;

//Hier wird das Variablen-Objet "v" übergeben.
Form2 f2 = new Form2(v);
f2.Show ();
this .Hide ();
}
//**************
// form2
//**************

public partial class Form2 : Form
{
private Variablen _vars ;

//C'tor-erweitern
public Form2(Variablen v)
{
InitializeComponents();

_vars = v;
textBox1.Text = _vars.uebergabe;

}

...

}

Ähnliche fragen