Hallo,
grundsätzlich sollten public variablen vermieden werden.
Im Fall von Instanzvariablen hält .Net die Properties bereit, die die Variable nach aussen verbergen. Trotzdem ist der von dir beschrieben weg natürlich möglich.
Wie ist die Reihenfolge des Aufrufs. Wird Form2 durch eine Aktion in Form1 aufgerufen?
Ist deine Variable als static deklariert? Ansonsten brauchst du die Instanz von Form1.
Ansonsten ist es nur wichtig, dass der Wert vor dem Auslesen gesetzt wird.
Folgende Version gibt beim Laden von Form2 6 aus.
Form1
public static int Test;
private void Form1_Load(object sender, EventArgs e)
{
Test = 6;
}
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.Show();
}
Form2
private void Form2_Load(object sender, EventArgs e)
{
MessageBox.Show(Form1.Test.ToString() );
}
Gruß Martin