Autor Beitrag
Oscuro
Hält's aus hier
Beiträge: 2



BeitragVerfasst: So 19.05.13 22:32 
Ein schöner Abend euch alle,

Dies hier ist mein erster Post, habt also bitte Verständnis wenn ich was Falsches mache.
Ich versuche zurzeit Dynamische Buttons zu erzeugen und sie dann mit ein EventHandler zu belegen um den Textinhalt beim klicken von jeden einzelnen Button zu ändern…
Ich bin bis jetzt so vorgegangen:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
for (int zeile = 0; zeile < 10; zeile++)
{
    for (int spalte = 0; spalte < 10; spalte++)
    {
        btnArray[zeile, spalte] = new Button();
        btnArray[zeile, spalte].Location = new Point(60 * zeile + 1060 * spalte + 10);
        this.pnlBoard.Controls.Add(btnArray[zeile, spalte]);

        btnArray[zeile, spalte].Click += new EventHandler(this.button_Click);
    }
}

Die Buttons werden jetzt schön Dynamisch erzeugt, wie kann ich jetzt aber ein event für jeden einzelnen Button machen ohne gleich 30 Seiten Code zu schreiben?

Danke fürs lesen, ich hoffe ihr könnt mir weiterhelfen.

Mfg, Oscuro.

Moderiert von user profile iconTh69: Quote- durch C#-Tags ersetzt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4701
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 19.05.13 23:15 
Du hast doch jetzt einen Event für jeden deiner Buttons? Wenn du die Buttons in deinem EventHandler unterscheiden willst sieh dir den an den EventHandler übergebenen Sender an. Das ist der jeweils auslösende Button.

Für diesen Beitrag haben gedankt: Oscuro
DarkStaRX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28
Erhaltene Danke: 3



BeitragVerfasst: So 19.05.13 23:55 
ausblenden C#-Quelltext
1:
2:
Button btn = (Button)sender;
btn.Text = "blabla";

So könntest du aus dem Event den ausgelösten Button ansprechen... und schreibst in den ausgelösten Button den Text blabla

Moderiert von user profile iconTh69: C#-Tags hinzugefügt

Für diesen Beitrag haben gedankt: Oscuro
Oscuro Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 20.05.13 12:09 
Ah vielen Dank,

Genau nach so was habe ich gesucht… jetzt sieht das ganze deutlich kürzer aus. :D

Wünsche noch ein schöner Tag miteinander.
kl.feigling
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 03.09.13 14:55 
Hallo, ich habe auch nochmal eine Frage zu denn Events.
Wenn ich einen Button in C# deaktivieren möchte geht das ja mit: button.Visible = false;
Dies kann ich ja auch direkt nach dem drücken machen :-)

Aber wie kann ich in wieder mit einer anderen Methode, die mein Programm aufruft aktivieren ?

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
 private void button_Click(object sender, EventArgs e)
        {
            
            button.Enabled = false;
            Funktionen.Funktionen.Adjustment_start();
        }

nach dem mehrere Prozesse gelaufen sind soll diese Methode aufgerufen werden:

ausblenden C#-Quelltext
1:
2:
3:
4:
private static void Button_freigeben ()
        {            
            button.Enabled = true;         
        }


Habe auch schon versucht ein eigenes Event zuschreiben ... leider ohne erfolg :-(
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4701
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 03.09.13 15:24 
Zitat:
Wenn ich einen Button in C# deaktivieren möchte geht das ja mit: button.Visible = false;


Du meinst vermutlich Enabled wie im Code.

Zitat:
nach dem mehrere Prozesse gelaufen sind soll diese Methode aufgerufen werden:


Definiere den Zeitpunkt/Codestelle wo das "mehrere Prozesse gelausen sind" fertig ist und rufe dort deine Methode auf.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 03.09.13 16:29 
Aber die Methode darf dann natürlich nicht static sein, da 'button' ja eine (non-static) Membervariable der Klasse ist.

Für diesen Beitrag haben gedankt: kl.feigling