Laden...

dynamische Buttons mit gleichem Code

Erstellt von lodi vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.154 Views
L
lodi Themenstarter:in
26 Beiträge seit 2010
vor 13 Jahren
dynamische Buttons mit gleichem Code

Hallo, dieser Thread wird etwas kompliziert 😉
also... ich habe eine Form, die 960x640 pixel groß ist.
Darauf sollen immer 10x10 buttons erstellt werden.
=> ich habe 6144 Buttons
Jeder dieser Buttons soll wenn ich draufklicke schwarz werden & bei erneutem klicken soll er wieder weiß werden. (Diese Funktion ist kein Problem, mein Problem liegt darin den Buttons den gleichen Code zuzuweisen)

Dann habe ich noch einen "Fertig-Button".
Wenn man darauf klickt sollen in einer Schleife die Positionen von allen schwarzen Button ausgegeben werde.

Ich weiß das ist kompliziert, deswegen brauch ich Hilfe 😉
Danke im Vorraus

G
538 Beiträge seit 2008
vor 13 Jahren

Wie wäre es mit nem "geerbten" Button, der genau 10x10 groß ist?

Dann kannst du jedem Button das gleiche Event zuweisen (das Event kennt ja den Sender und den kann man auf Button casten)
und dann kannst du per Form.Controls auslesen, wer da schwarz und wer weiß ist ...

Allerdings wage ich zu bezweifeln, dass Buttons hier sehr optimal sind ...
Zudem wäre es sinnvoll die Buttons auf ein Container-Control zu legen - dann lassen sie sich später leichter abfragen..

Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)

L
lodi Themenstarter:in
26 Beiträge seit 2010
vor 13 Jahren

was genau meinst du mit geerbt?
hast du dafür n Code?
Danke 😉

2.187 Beiträge seit 2005
vor 13 Jahren

Hallo lodi,

Das ist garnicht schwer zu machen:

  1. Buttons Dynamisch erzugen.
  2. Größe und Position der Buttons einstellen
  3. Buttons auf Container (z.B. Pannel) einfügen
  4. Eventhandler für Click dynamisch Registrieren:

button.Click += new EventHandler(this.button_Click); // schlägt VS auch vor.

  1. EventHandler (button_Click) implementieren

private void button_Click(object sender, EventArgs e)
{
  Button button = (Button)sender;
  // hier kannst du machen was du willst.
}

Gruß
Juy Juka

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo lodi,

=> ich habe 6144 Buttons

da es um derart viele Buttons geht, bleibt dir wohl nur selber zeichnen:

Siehe
[Artikel] Zeichnen in Windows-Programmen
ButtonRenderer
Optimierungsideen für die Darstellung von sehr vielen Controls?

herbivore

916 Beiträge seit 2008
vor 13 Jahren

Ich weiß das ist kompliziert, deswegen brauch ich Hilfe 😉

Das nennst du kompliziert? 😃

Also ich für meinen Teil würde dir auch empfehlen bei so einer Menge an Buttons/Controls das du selber zeichnest und auch ein eigenes Button Objekt definierst was deinen Anforderungen entspricht.

was genau meinst du mit geerbt?

Ich glaub das gehört zu den Grundlagen, du solltest dir mal ein C# Buch durch lesen...

Again what learned...