Mehrere Button und ihr Ereignis



  • Hallo alle zusammen.

    Hoffe ihr könnt mir weiter helfen. Und zwar geht es darum, das ich wenn die Form geladen wird, mehrere Buttons erstellen lasse:

    for each (String ^Farbname in listBox3->Items){
    	this->ButtonFarben = (gcnew System::Windows::Forms::Button());
    	this->ButtonFarben->BackColor = System::Drawing::Color::FromName(Farbname);
    					this->ButtonFarben->FlatStyle = System::Windows::Forms::FlatStyle::Popup;
    					this->ButtonFarben->Location = System::Drawing::Point(Links, Oben);
    					this->ButtonFarben->Name = Farbname;
    					this->ButtonFarben->Size = System::Drawing::Size(20, 20);
    					this->ButtonFarben->Text = "";
    					this->ButtonFarben->UseVisualStyleBackColor = false;
    					this->ButtonFarben->Parent = this;
    					this->ButtonFarben->Click += gcnew System::EventHandler(this, &Form1::ButtonFarben_Click);
    
    					Links += 22;
    
    					if (Spalte == 10){
    						Spalte = 1;
    						Links = 400;
    						Oben += 22;
    					}
    					else
    						Spalte++;
    				 }
    

    Wenn ich nun auf einen Button klicke soll mir das Click-Ereignis die aktuelle BackColor Farbe liefern:

    private: System::Void ButtonFarben_Click(System::Object^  sender, System::EventArgs^  e){
    			 Color ^Farbe;
    			 Farbe = ButtonFarben->BackColor;
    			 textBox1->ForeColor = System::Drawing::Color(Farbe);
    		 }
    

    Wenn ich das Programm aber starte und auf einen Button klicke, liefert er mir immer nur den Farbwert des letzten Buttons. Wäre schön wenn mir jemand helfen könnte.

    gruß Digga



  • Benutze den Sender des Ereignisses:
    Farbe = static_castSystem::Windows::Forms::Button^(sender)->BackColor;



  • Danke schön. Jetzt klappt´s!

    gruß digga


Anmelden zum Antworten