Entwickler-Ecke

WinForms - Der Inhalt des Labels wird nicht verändert


jaxl15 - Mi 21.09.11 16:02
Titel: Der Inhalt des Labels wird nicht verändert
Hallo erst mal.
Ich programmiere erst seit kurzem mit C# nur zur erklärung

also mein problem ist, ich greife von einer form auf das label einer anderen zu. Fehlermeldungen gibt es keine aber der wert verändert sich nicht.


C#-Quelltext
1:
2:
3:
4:
5:
private void button1_Click(object sender, EventArgs e)
{
   Form1 frm = new Form1();
   frm.Geld.Text = Convert.ToString(Convert.ToDouble(frm.Geld.Text) - 2);
}


ich weiß nicht was ich noch machen soll. bitte helft mir.

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Moderiert von user profile iconTh69: Topic aus Datenbanken (inkl. ADO.NET) verschoben am Mi 21.09.2011 um 16:40


dark-destination1988 - Mi 21.09.11 16:04

bspw. dem konstruktor der Form1 einen String übergeben und der Konstruktor sorgt für das setzen des Labels.


jaxl15 - Mi 21.09.11 16:06

ich weiß jetzt nicht was du damit meinst kannst du mir bitte ein Beispiel zeigen?


Ralf Jansen - Mi 21.09.11 16:19

Du erzeugst dir in button1_Click eine neue Form1. Das ist also eine andere als die dir du vielleicht zuvor erzeugt und angezeigt hast. Von dieser neuen Form1 setzt du das Label und zeigst diese Form1 aber nie an. Da frm eine lokale Variable ist wird die auch am Ende der Methode wieder zerstört. Das ganze ist also ein sehr kurzer unsichtbarer Spaß.

Du musst die zwei konkret beteiligten Formen miteinander bekanntmachen und dir nicht einfach eine neue dritte Form erzeugen.
Von diesem gern verlinkten Beitrag [http://www.mycsharp.de/wbb2/thread.php?threadid=5960] solltest du alles notwendige finden um das zu lösen.


jaxl15 - Mi 21.09.11 16:56

ich habe mir das alles angesehen und ich verstehs einfach nicht!
ich weiß jetzt 3 stunden schon nicht was ich machen soll und durchsuche das ganze internet.
kann nicht irgendjemand mir einfach eine lösung schreiben wie ich von einer form zu einer anderen variablen überliefern kann.
oder von einer form auf ein label einer anderen form zugreifen kann.

bitte bitte helft mir


Th69 - Mi 21.09.11 17:15

Hallo jaxl15 und :welcome:,

ich weiß: aller Anfang ist schwer, aber du mußt eben die Grundlagen verstehen.

Vllt. hilft dir ja mein Artikel Kommunikation von 2 Forms [http://www.bitel.net/dghm1164/programming/Kommunikation_von_2_Forms.html] weiter (der in Anlehnung an den FAQ-Eintrag aus dem myCSharp-Forum entstanden ist).

Du hast leider einen der "typischen Anfängerfehler" begangen und mußt verstehen, warum dies so nicht funktionieren kann.

Wichtig ist auch, in welchem Verhältnis die beiden Forms zueinander stehen, d.h. ob eine Form eine untergeordnete einer anderen Form ist.
Je nachdem gibt es dann unterschiedliche Lösungen (Eigenschaften bzw. Ereignisse).

Und wenn "Geld" wirklich ein Label darstellt, so sollte es nicht öffentlich (public) gemacht werden, sondern explizit eine Eigenschaft (bzw. Methode) dafür erstellt werden (Kapselungsprinzip der OOP).


jaxl15 - Mi 21.09.11 17:23

ok danke
vielleicht habe ich ein bisschen überreagiert.
aber du musst verstehen das mich das ein bisschen nervös macht wenn ich jetzt schon so lange eine lösung suche


storestore - Mi 21.09.11 19:27

Lässt sich das ganze nicht auch durch Vererbung lösen?
:?:


Ralf Jansen - Mi 21.09.11 20:23

Nein. Vererbung ist eine andere Baustelle.


storestore - Mi 21.09.11 21:05

Echt nicht? Naja bin auch noch in der lernphase ;)


Trashkid2000 - Mi 21.09.11 21:51

user profile iconstorestore hat folgendes geschrieben Zum zitierten Posting springen:
Echt nicht? Naja bin auch noch in der lernphase ;)

Man ist als Entwickler immer in der Lernphase. Denn wer weiß schon alles?
Manche behaupten das zwar, aber dem ist nicht so!


jaxl15 - Mi 21.09.11 21:57

ich habe mir gerade ein tutorial durchgelesen und habe alles genau nach gemacht.
Aber ich kriege immer folgende fehlermeldung: klasse delegat enumeration schnittstelle oder struktur erwartet

http://www.tutorials.de/content/404-c-datenaustausch-zwischen-zwei-forms.html

ich hoffe mir kann jemand helfen


jaenicke - Do 22.09.11 03:31

user profile iconjaxl15 hat folgendes geschrieben Zum zitierten Posting springen:
Aber ich kriege immer folgende fehlermeldung: klasse delegat enumeration schnittstelle oder struktur erwartet
Wo, bei welchem Quelltext?

user profile iconjaxl15 hat folgendes geschrieben Zum zitierten Posting springen:
http://www.tutorials.de/con...chen-zwei-forms.html
Das war wohl nix, der Link ist nicht vollständig. Außerdem wäre es ohnehin sinnvoller, wenn du den Code, bei dem bei dir der Fehler auftritt, hier postest...


Kha - Do 22.09.11 03:55

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconjaxl15 hat folgendes geschrieben Zum zitierten Posting springen:
http://www.tutorials.de/con...chen-zwei-forms.html
Das war wohl nix, der Link ist nicht vollständig.
Weil er seinen Beitrag aus dem ursprünglichen Thread kopiert hatte, mit dem ich den neuen Thread gerade gemergt habe ;) .

@user profile iconjaxl15: Bitte wechsle innerhalb eines zusammenhängenden Themas nicht den Thread! Ebenso ist das "Pushen" von Beiträgen nicht innerhalb von 24 Stunden erlaubt.