Variablenübergabe zwischen zwei Forms

faTifer

Grünschnabel
Hi zusammen,

ich habe ein Problem mit C#, bei der Übergabe einer Variable zwischen zwei Windows Forms.
Das Tutorial zum Übergeben der Variable habe ich mir bereits durchgelesen, das Übergeben selbst klappt auch schon....das Problem ist jetzt jedoch, dass der in Form1 gespeicherte Wert beim Auslesen in Form2 stets "0" ist :(

Hier einige Codeausschnitte:

Code:
  public double dTime
        {
            get { return my_dTime; }
            set { my_dTime = value; }            
        }
// Die besagte Variable

Code:
        private void bSave_Click(object sender, EventArgs e)
        {
            Form2 frm2 = new Form2();
            frm2.Show();
            this.Hide();
        }
//Der Formwechsel

...in Form1 stimmt der Wert noch, es scheint als würde der Fehler irgendwo im Formwechsel liegen.

Wäre für etwaige Tipps sehr dankbar :)

Gruß,
Fatifer
 
Erstmal danke für die schnelle Antwort ;)

Verändern tu ich die garnicht, der Sinn dahinter ist eigentlich eine in Form1 gespeicherte Zahl, die dann zusammen mit einem "Form2 string" mittels Streamwriter in ein File geschrieben werden soll.
Das Schreiben klappt auch wunderbar, außer dass die Zahl stets 0 ist -.-

Zum Testen habe ich einfach mal folgenden Code verwendet, der leider genauso "0" ausgibt.

Code:
    public partial class Form2 : Form
    {
        Form1 frm1 = new Form1();
        (...)
     }

Code:
        public Form2()
        {
            InitializeComponent();         
            textBox1.Text = frm1.dTime.ToString();         
        }

// Edit: Vielleicht noch informationshalber, der Wert wird innerhalb eines button_click events in Form1 an die Variable übergeben...das sollte aber nicht das Problem sein.

Gruß,
Fatifer
 
Zuletzt bearbeitet:
das liegt daran, dass du mit form1 frm1 = new form() eine neue form instanziierst die mit deiner alten form1 nix mehr zu tun hat, also auch keinen wert in der variable hat

mach es andersrum..... vor dem aufruf der form2 sagst du frm2.dTime = this.dTime

dann musst du natürlich auch deine variable in form 2 einkapselnb und so zur eigenschaft machen, dann gehts einwandfrei
 
Zuletzt bearbeitet:
Ok, danke dir...das Problem ist nun gelöst :)

Hatte anfangs noch Probleme, nachdem ich deinen Rat befolgt habe...als ich den textBox1.Text = dTime.ToString(); Abschnitt dann in den button_Click bzw. Form2_Load event verschoben hatte, ging es ..hatte es die ganze zeit im public Form2() Block stehen, nach dem InitializeComponent() ...weiß zwar nicht warum es dort nicht ging, aber Problem ist immerhin gelöst :D

Gruß
 
Zurück