Variablen von Formular 2 bei ende an Formular 1 übergeben

Goldman

Mitglied
Hallo, ich würde gerne wissen, wie ich aus meinem zweiten Formular nach Eingabe in 2 monthcalender Steuerelemente und das Speicher in die Variablen BeginDate und EndDate an das Usprüngliche Formular Form1 die Variablen übergeben kann.

Damit rufe ich Form2 auf:

Code:
        private void button2_Click(object sender, EventArgs e)
        {
            Form2 Form2 = new Form2();
            Form2.Show();

        }

Damit überprüfe ich vor dem schließen von Form2, ob das startdatum nach dem des Enddatums eingestellt ist.
Des Weiteren gebe ich die gewonnenen Informationen erstmal per messagebox aus.
Nun sollen die Daten aber an Form1 weitergegeben werden, um die dann weiter zu verwenden.
Code:
        private void Form2_FormClosing(Object sender, FormClosingEventArgs e)
        {
            if (DateTime.Parse(EndDate) < DateTime.Parse(BeginDate))
            {
                MessageBox.Show("Fehler das Datum für den Begin ist nach dem des Endes");
                e.Cancel=true;
            }
            else
            {

                MessageBox.Show("Anfang" + BeginDate + "Ende" + EndDate);
            }
        }


Kann mir da wer weiterhelfen ?
 
Hi.

Als erstes öffentliche Eigenschaften bei "Form2" definieren, über welche du die Daten abfragen kannst.

Dann rufst die Form2 statt mit "Show" mittels "ShowDialog" auf, und überprüfst den Rückgabewert davon auf "DialogResult.Ok". Natürlich dann aber auch einen entsprechenden Button bei "Form2" definieren. (Am Besten auch einen zum Abbrechen.. ;) )

Aussehen könnte das ganze dann so:
C#:
private void button2_Click(object sender, EventArgs e)
{
  Form2 Form2 = new Form2();

  if (Form2.ShowDialog() == DialogResult.Ok)
  {
    MessageBox.Show("Anfang" + Form2.BeginDate + "Ende" + Form2.EndDate);
  }

}

Wobei du dir überlegen könntest, ob sinnvollere Bezeichnungen für deine Steuerelemente angebracht wären.

lg,..
 
in Form2 habe ich das so:

Code:
    public partial class Form2 : Form
    {
        #region Time
            //in the beginning
            string Bday = "";  string Bmonth = "";    string Byear = "";
            string BeginDate;
            string Eday = ""; string Emonth = ""; string Eyear = "";
            string EndDate;
        #endregion
        public Form2()
        {
            InitializeComponent();

        }

Sind die Variablen nicht public
 
Hoi,

in Form1:
Code:
...
private void button1_Click(object sender, EventArgs e)
{
        string ergebnis;
        using (Form2 F2 = new Form2())
        {
                F2.ShowDialog();
                ergebnis = F2.result; //<-Daten holen
        }
        MessageBox.Show(ergebnis);
}
...
in form2:
Code:
...
public string result

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
        result = "Hallo Welt";
}
...

Ergebnis: nach Schliessen der 2. Form erscheint eine MsgBox mit dem "Hallo Welt"-Text...

greetz, me
 
Zurück