Dynamisches erstellen von Objekten zur Laufzeit

T-zone

Grünschnabel
Hallo,

ich hab folgendes Problem:

Ich möchte mehrere Labels zur Laufzeit erstellen.
d.h. ich hab eine Reihe von Informationen die ich darstellen will und pro Information
soll ein neues Label erstellt werden...

in VB6.0 war das über den Index möglich, man konnte vor der Laufzeit ein label
erstellen und dann belibig viele "Kopien" mit abgeänderten Eigenschaften erstellen.

Da es nun keinen Index mehr in Vb.Net gibt nun meine Frage:

Wie bekomm ich das oder ähnliches in VB.Net hin?

Vielen dank im Vorraus

Gruss Pat
 
also VB kann ich nicht, aber in C# schaut das Ganze zum Beispiel so aus:
Code:
      Label myLabel = new Label();
      myLabel.Text = "Hello World";
      myLabel.Location = new Point(10, 20);
      this.Controls.Add(myLabel);

Sollte sich 1 zu 1 in VB umsetzen lassen, die Syntax kenne ich allerdings leider nicht.
 
Hi,

Mit deiner Hilfe hats geklappt:

(VB-Code)
Code:
        Dim myLabel As New Label
        myLabel.Text = "Hello World"
        myLabel.Location = New Point(10, 20)
        Me.Controls.Add(myLabel)

Jetzt aber die vollendung:
Wie kann ich nun diese in belibiger Anzahl (z.b. mit Index: label(1), label(2) ...) erstellen und wie kann ich die Events handeln?

Thx Pat
 
Eventuell kommt eine Indizierung der Labels in Frage?
C++:
for (int i = 0; i < 10; ++i);
{
    Label ^label = gcnew Label();
    label->Name = i;
    label->Location = Point(100, 20 + (20*i + 2));
    label->Click += gcnew EventHandler(this, &ClickEvent);
    this->Controls->Add(label);
}

Und im EventHandling dann aussortieren:
C++:
void ClickEvent(System::Object ^sender, EventArgs e)
{
    Label ^label = (Label ^)sender;
    switch(label->Name)
    {
        case 1:
            ... // add action here
            break;
        case 2:
            ... // add action here
            break;
         ...
    }
}

Somit erstellst du beliebige Labels, die alle dasselbe Eventhandling benutzen, nur dort sortierst du, was wohin gehört...

Wenn die Abhängigkeit von Namen ungut ist, verwende doch vielleicht das "Tag" Property...

Hoffe, das hilft dir in irgendeiner Weise weiter...

mfG
the incredible Leitman

PS: Der Code ist nicht getestet und in managed C++... Er soll dir lediglich die Vorgangsweise beschreiben!
Für eventuell entstandene Schäden in deinen Routinen übernimmt der Autor keine Verantwortung! ;)
 
Zurück