tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
1783
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von MichiStroi
    MichiStroi MichiStroi ist offline Mitglied Gold
    Registriert seit
    Apr 2004
    Ort
    Seebenstein (NÖ)
    Beiträge
    162
    Hallo!

    Ich möchte eine unzahl an Objekten während der Laufzeit erstellen.
    Genauergesagt: Der Anwender gibt die Größe eines Spielfeldes ein. Anschließend soll mit einer For Schleife ein Spielfeld aus zB: 10 x 10 rechteckigen Buttons erstellt werden.
    Jetzt hab ich allerding das Problem, dass ich den Buttons jedem einen eigenen Namen vergeben muss.
    Kann ich in einer String Variable einen Code erstellen und dann ausführen lassen?
    Gibts sonst noch irgendwelche Möglichkeiten?

    Danke!

    Grüße
    Michi
     

  2. #2
    Avatar von Alexander Schuc
    Alexander Schuc Alexander Schuc ist offline admin | crazy-weasel
    tutorials.de Administrator
    Registriert seit
    Aug 2001
    Ort
    Österreich, Stmk, Graz
    Beiträge
    2.783
    Hi.

    Warum? Du musst nicht jedem einen eigenen Namen geben.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    int rows = 10;
    int cols = 10;
    Hashtable myButtons = new Hashtable();
     
    for (int r = 0; r < rows; r++)
    {
        for (int c = 0; c < cols; c++)
        {
            Button b = new Button();
            b.Size = new Size(20,20);
            b.Location = new Point(r * 20,r * c);
            b.Click += new EventHandler(this.ButtonClicked);
            myButtons.Add(new Point(r,c),b);
            this.Controls.Add(b);
        }
    }

    So erstellst du die benötigte Menge Buttons, weisst ihnen den rechten Platz zu, hast einen Click-Eventhandler und zusätzlich sind die Buttons in einem Hashtable gespeichert mit den Spielfeldkoordinaten als Punkt als Schlüssel des Hashtables.

    MfG,
    Alex
     
    With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
    Aaron Satie

    Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
    Captain Jean-Luc Picard, Stardate ~41294.5

    Tutorials.de chattet. Hier gibts auch .net Support ^^
    Klickt auf chattet und nutzt den Webchat, oder verbindet euch zu irc.tutorials.de - Channel #Tutorials.de

    (moo)blog furred.net // SiteInfo für WP7 // Pastebin für WP7 // BlogEngine.net Extensions

  3. #3
    Avatar von MichiStroi
    MichiStroi MichiStroi ist offline Mitglied Gold
    Registriert seit
    Apr 2004
    Ort
    Seebenstein (NÖ)
    Beiträge
    162
    Hi Alex!

    Cool!

    Ein paar Fragen hät ich da aber noch...
    Kann ich eigentlich dem Event Handler auch den Button mitgeben, den ich betätigt habe? Ich habs zwar geschafft den HashCode auszulesen aber könnt ich nicht auch gleich zwei Argumente mit Spalte , Zeile übergeben?

    Oder, kann man in der Hash Tabelle feststellen welcher Button betätigt wurde?

    Danke für deine Hilfe!

    Michi
     

  4. #4
    Avatar von Alexander Schuc
    Alexander Schuc Alexander Schuc ist offline admin | crazy-weasel
    tutorials.de Administrator
    Registriert seit
    Aug 2001
    Ort
    Österreich, Stmk, Graz
    Beiträge
    2.783
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    Button b = new Button();
    b.Size = new Size(20,20);
    b.Location = new Point(r * 20,r * c);
    b.Click += new EventHandler(this.ButtonClicked);
     
    [b]b.Tag = new Point(r,c);[/b]
     
    myButtons.Add(new Point(r,c),b);
    this.Controls.Add(b);
     
    ----
     
    private void ButtonClicked(object sender, EventArgs ea)
    {
        Button b = (Button) sender;
        Point p = (Point) b.Tag;
    }

    So könntest du u.a. den Punkt übergeben, sodass du ihn auch gleich im EventHandler hast.
     
    With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
    Aaron Satie

    Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
    Captain Jean-Luc Picard, Stardate ~41294.5

    Tutorials.de chattet. Hier gibts auch .net Support ^^
    Klickt auf chattet und nutzt den Webchat, oder verbindet euch zu irc.tutorials.de - Channel #Tutorials.de

    (moo)blog furred.net // SiteInfo für WP7 // Pastebin für WP7 // BlogEngine.net Extensions

  5. #5
    Avatar von MichiStroi
    MichiStroi MichiStroi ist offline Mitglied Gold
    Registriert seit
    Apr 2004
    Ort
    Seebenstein (NÖ)
    Beiträge
    162
    Super!

    Danke nochmals!
     

  6. #6
    chris1010 chris1010 ist offline Grünschnabel
    Registriert seit
    Oct 2004
    Beiträge
    2
    muss mich auch noch bedanken, war genau ein problem
     

Ähnliche Themen

  1. Klasse während Laufzeit erstellen...
    Von Darian im Forum PHP
    Antworten: 10
    Letzter Beitrag: 15.01.09, 22:28
  2. Design-Ansicht während der Laufzeit
    Von DennisW im Forum .NET Windows Forms
    Antworten: 1
    Letzter Beitrag: 17.01.08, 13:52
  3. Pixel während Laufzeit verfärben
    Von Jaksil im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 20.04.07, 11:08
  4. Komponente hinzufügen während Laufzeit
    Von mywaymylife im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 4
    Letzter Beitrag: 23.01.07, 14:53
  5. Controls während der Laufzeit löschen
    Von Primax im Forum Visual Basic 6.0
    Antworten: 8
    Letzter Beitrag: 01.12.03, 13:57