Entwickler-Ecke
WinForms - Arraywerte in 2. Formular übertragen
blubber89 - Di 10.06.08 21:10
Titel: Arraywerte in 2. Formular übertragen
Hallo,
ich möchte im Hauptformular ermittelte Arraywerte zur Ausgabe in ein 2. Formular übergeben.
Beispielsweise zur Ausgabe in einer Tabelle.
Mein Problem ist das ich nicht weiß wie ich die wert in das 2. Formular übergebe.
Könnt ihr mir dabei helfen?
Vielen Dank
Daniel
JüTho - Mi 11.06.08 09:33
Hallo Daniel,
kennt das Hauptformular das zweite Formular, und ist Form2 schon erzeugt worden? Dann geht es u.a. über eine
Eigenschaft:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| public string SetText2 { set { myTextBox2.Text = value; } } form2.SetText2 = "neuer Wert"; |
Oder mit einer
Methode:
C#-Quelltext
1: 2: 3: 4: 5:
| public void SetText2(string value) { myTextBox2.Text = value; } form2.SetText2("neuer Wert"); |
Oder mit einem
Delegate; aber das wird umständlicher für ein solch einfaches Beispiel
Wenn Form2 erst erzeugt werden muss, dann muss das zunächst geschehen; danach stehen die gleichen Verfahren zur Verfügung. Aber das kann auch direkt mit einem passenden
Konstruktor gehen:
C#-Quelltext
1: 2: 3: 4: 5: 6:
| public Form2(string text2) { myTextBox2.Text = text2; } form2 = new Form2("neuer Wert"); |
Alles, was ich hier mit string als Beispiel gemacht habe, geht mit jedem anderen Objekt ebenso - auch mit decimal[] oder List<myClass>.
Übrigens solltest Du - wenn es irgendwie möglich ist und Du selbst die Kontrolle hast - auf Arrays verzichten (sie sind wegen der festen Größe äußerst unflexibel) und lieber mit
List<T> arbeiten.
Jürgen
blubber89 - Mi 11.06.08 15:33
super danke schön:)
Habe eine Aufgabe bekommen, im Rahmen des Informatikunterricht, wo drin stand das wir Arrays verwenden sollen!
Mich würde das aber trotzdem interessieren wie das mit List<T> funktioniert.
Kannst du mir das villeicht mal kurz erläutern?
danke
daniel
JüTho - Mi 11.06.08 18:36
blubber89 hat folgendes geschrieben: |
Mich würde das aber trotzdem interessieren wie das mit List<T> funktioniert.
Kannst du mir das villeicht mal kurz erläutern? |
Das kann ich wohl nicht, weil es zu umfangreich ist. Du kannst in der
SDK-Doku die Informationen zu
List (generische Klasse) nachlesen.
Der entscheidende Unterschied ist die feste Größe beim
Array:
C#-Quelltext
1: 2: 3:
| string[] stringArray = new string[5]; stringArray[0] = "erster String"; Console.WriteLine(stringArray[0]); |
An den Positionen 1...4 stehen noch keine Strings, können aber eingetragen werden. Wenn du an Position 5 einen String eintragen willst, gibt es eine IndexOutOfRangeException. Nachträglich die Größe eines Array zu ändern ist möglich, aber umständlich und zeitaufwändig.
Bei einer
List<> können Elemente beliebig hinzugefügt und entfernt werden. Außerdem ist automatisch sicher, dass die Elemente einem bestimmten Typ entsprechen (anders als bei der Array-Klasse).
C#-Quelltext
1: 2: 3: 4: 5:
| List<string> stringList = new List<string>(); stringList.Add("erster String"); stringList.Add("zweiter String"); stringList.RemoveAt(0); Console.WriteLine(stringList[0]); |
Bei diesem Ablauf enthält die Liste nacheinander 0, 1, 2, 1 Elemente.
Gruß Jürgen
blubber89 - Do 12.06.08 20:41
ok
trotzdem vielen dank für die hilfe
daniel
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!