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