Entwickler-Ecke
Basistechnologien - mit einer schleife referenzen auf objekte dynamisch erstelle
vergiss - So 12.04.09 20:11
Titel: mit einer schleife referenzen auf objekte dynamisch erstelle
mit einer schleife referenzen auf objekte dynamisch erstelle
Sorry bin etwas neu hier um einfach so einen Tread zu öffnen.
Konnte aber niergens auf eine Antwort stossen, wusste nicht wonach ich suchen sollte.
Ich möchte mit eine for Schleife ein array mit objekt referenzen füllen.
Ich weiss aber nicht wie ich die namen der referenzen generieren kann.
Ich möchte so etwas können;
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| Button[] button = new Button[10];
for(int I = 0; I < 10; I++){ button[I] = button + [I] <<<<<<<======== HIER IST MEIN PROBLEM !!!!!!! Wie erreiche ich dass daraus button1 button2 : : button10 wird???? |
Vielen Dank für jeden kommentar.
:
:
button10 wird????
Moderiert von
Christian S.: C#-Tags hinzugefügt
vergiss - So 12.04.09 21:10
weiss nicht ob ich richtig verstanden wurde.
möchte doch nur button, zu button1, button2, ...
wobei ich die zahlen (button1 <--, button2 <---) durch eine Variable ersetzen kann.
Es muss doch einfach eine einfache möglichkeit geben, wie zum Beispiel:
int i=1;
button + [i];
oder:
button_ + i
oder irgendwas.
Damit ich alle 10 buttons in ein Array schreiben kann.
Durch deinen link bin ich auf das gestosen?????
Das sieht mir mehr aus um in xml Dateien zu suchen, aber ich weiss nicht vielleicht
verstehe ich noch viel zu wenig vom Programmieren.
public Control[] Find(
string key,
bool searchAllChildren
)
jaenicke - So 12.04.09 21:38
Naja, was willst du machen? Du suchst eine Komponente namens "button" + Schleifenindex...
Und was kannst du mit Find machen? Nach einer Komponente mit einem bestimmten Namen suchen. :idea:
vergiss - Mo 13.04.09 23:10
Sorry, aber ich verstehe es immer noch nichts.
Ich möchte so was können:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| public partial class Form1 : Form { Button[] button = new Button[5]; public Form1() { InitializeComponent(); for (int i = 0; i < 4; i++ ) { [b]button[i] = "button" + i;[/b] } } |
So kann ich dann später so was machen: button[1].Text = "Hallo";
Bin für jede Hilfe dankbar.
Ich weiss auch nicht wonach ich in meinen Büchern suchen muss.
Moderiert von
Christian S.: C#-Tags hinzugefügt
jaenicke - Mo 13.04.09 23:32
:roll:
C#-Quelltext
1: 2: 3:
| for (int i = 0; i < 4; i++ ) { button[i] = (Button)Controls.Find("button" + i.ToString(), true)[0]; } |
Du solltest deinen Quelltext hier im Forum auch als solchen markieren:
Quelltext
1:
| <span class="inlineSyntax">{PROTECTTAG931ae1e89eb82919d9f7be3c5d3b6dbd}</span> |
Moderiert von
Kha: Da hing noch ein [b] in der Luft :)
vergiss - Mo 13.04.09 23:54
Schaff es einfach nicht.
Muss es morgen nochmals probieren.
Wofür steht denn das: [b] ?
Aber vielen Dank
jaenicke - Mo 13.04.09 23:56
Das war ein Überbleibsel aus deiner Fettmarkierung hier im Forum, das habe ich danach noch rauseditiert (oder
Kha sehe ich gerade, ich habs parallel dann versucht^^).
Ansonsten funktioniert der Code so 1:1, es sei denn du benutzt eine ältere Version von C#. Da du nichts dazu geschrieben hast, gehe ich natürlich von .NET 3.5, also z.B. Visual Studio 2008, aus...
vergiss - Di 14.04.09 12:27
Vielen Dank!!!!
Es hat nun funktioniert.
Mein fehler war, dass ich das int in der Schleife mit 0 initalisiere. Aber ich habe ja keinen button0!!
Hatte deshalb einen Fehler während der laufzeit.
Vielen Dank!
(verstehe das Control noch nicht recht. Habe begriffen das ich Steuerelemente auf meiner GUI damit ansprechen kann. Ich erhalte eine Liste mit allen Objekten. Aber weshalb braucht man den am Ende der Control.Find... eine eckige Klammer? ([0]))
jaenicke - Di 14.04.09 15:34
Weil du eine Liste aller passenden Objekte erhälst. Die enthält bei dir zwar nur ein Element, ändert aber nichts daran, dass mehrere zurückgegeben werden. Du brauchst also nur das erste, also [0].
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!