Autor Beitrag
vergiss
Hält's aus hier
Beiträge: 5



BeitragVerfasst: So 12.04.09 20:11 
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;


ausblenden 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 user profile iconChristian S.: C#-Tags hinzugefügt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19340
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 12.04.09 20:37 
Das sollte z.B. mit Control.ControlCollection.Find gehen:
msdn.microsoft.com/e...collection.find.aspx
vergiss Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19340
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 13.04.09 23:10 
Sorry, aber ich verstehe es immer noch nichts.
Ich möchte so was können:




ausblenden 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 user profile iconChristian S.: C#-Tags hinzugefügt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19340
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 13.04.09 23:32 
:roll:
ausblenden 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:
ausblenden Quelltext
1:
<span class="inlineSyntax">{PROTECTTAG931ae1e89eb82919d9f7be3c5d3b6dbd}</span>					


Moderiert von user profile iconKha: Da hing noch ein [b] in der Luft :)
vergiss Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19340
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 13.04.09 23:56 
Das war ein Überbleibsel aus deiner Fettmarkierung hier im Forum, das habe ich danach noch rauseditiert (oder user profile iconKha 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 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19340
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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].