Forum: PC-Programmierung string zwischen form und mdi-form austauschen c#


von Daniel B. (yzdani)


Lesenswert?

Servus,

ich habe eine Form und ein MDI-Form.
Über "Datei neu" im MDI-Form öffne ich ein neues Form.
Dort kann dann der String für den Datei Name eingegeben werden.
Im Form wird dann der String in eine Libary geschrieben.
Wenn im Form auf den Speichern Button gedrückt wird  soll im MDI-Form 
der Text in einem Label dargestellt werden.

Die Libary sieht so aus:
https://msdn.microsoft.com/de-at/library/ms743695(v=vs.110).aspx

Vom form in die Libary schreibe ich so:
1
 private void button1_Click(object sender, EventArgs e)
2
        {
3
            input = Convert.ToString(textBox1.Text);
4
            SetName.PersonName = input;
5
            
6
        }

und im MDI schaut es so aus:


aufruf der Lib
1
Person get_set_changed = new Person();
Eventhandler:
1
 get_set_changed.PropertyChanged += new PropertyChangedEventHandler(WriteToLabel);

Code:
1
 
2
private void WriteToLabel(object sender,  PropertyChangedEventArgs e  )
3
        {
4
            string input = get_set_changed.PersonName;
5
            try
6
            {
7
                if (InvokeRequired)
8
                {
9
                    Invoke(new MethodInvoker(LabelWrite));
10
                }
11
            }
12
            catch
13
            {
14
15
            }
16
        }


ist alles im Winform.
ich denke das Problem liegt am Eventhandler?

Danke im  Voraus!

Gruß
Dani

: Bearbeitet durch User
von nicht"Gast" (Gast)


Lesenswert?

deine drei Stück Code haben einfach nichts miteinander zu tun.

Ich kann da keine Verbindung feststellen.

btw, was passiert eigentlich, wenn kein Invoke benötigt wird? Dann 
passiert gar nichts.

von Dominik L. (Gast)


Lesenswert?

Hey Dani,

ist alles ein wenig Kompliziert und geht wahrscheinlich auch einfacher! 
(Gehe davon aus Du benötigst die Form wirklich nur zum auswählen eines 
wertes, in der weiteren Bearbeitung kann diese geschlossen sein?!)

Der Klasse der Form würde ich ne weitere Variable deklarieren (public). 
Diese würde ich dann beim Speichern zuweisen.

Im MDI Form würde ich mit einem DialogStatusResult arbeiten. Wenn Du die 
Form schliesst ein "DialogStatusResult.OK" mitgeben und das auf MDI 
Seite abfangen und einer weiteren Variablen mitgeben.

Habe sowas oft im Einsatz. Leider im Moment kein Beispiel parrat! Den 
'unnötigen' aufbau mit dem Eventhandler würde ich umgehen!


Gruß Dominik

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.