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
Th69: C#-Tags hinzugefügtModeriert von
Th69: 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
storestore hat folgendes geschrieben : |
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!
jaenicke - Do 22.09.11 03:31
jaxl15 hat folgendes geschrieben : |
Aber ich kriege immer folgende fehlermeldung: klasse delegat enumeration schnittstelle oder struktur erwartet |
Wo, bei welchem Quelltext?
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
jaenicke hat folgendes geschrieben : |
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 ;) .
@
jaxl15: Bitte wechsle innerhalb eines zusammenhängenden Themas nicht den Thread! Ebenso ist das "Pushen" von Beiträgen nicht innerhalb von 24 Stunden erlaubt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!