Wie bekomme ich einen Text der Schaltfläche, wenn ich darauf klicke, in der Listbox ohne Ereignis für alle Schaltfläche zu definieren. Wie man es verallgemeinert.Button Click Event Generalisierung
Antwort
Was Sie tun können, ist eine Schleife durch die Schaltflächen auf dem Formular programmatisch und für jeden Event-Handler hinzufügen.
Diesen in Ihrer Form Konstruktor:
foreach (var ctrl in this.Controls)
{
if (ctrl is Button)
{
((Button) ctrl).Click += MainForm_Click;
}
}
Und hier ist Ihre Event-Handler:
void MainForm_Click(object sender, EventArgs e)
{
listBox1.Items.Add(((Button) sender).Text);
}
Equalsk Vorschlag ist gut: wenn Sie andere Tasten auf dem Formular, das Sie don‘ Wenn Sie Teil dieses Verhaltens sein möchten, können Sie die Schaltflächen in einem Panel oder anderen Steuerelement auf Ihrem Formular setzen. Dann würden Sie einfach die foreach
in Ihrem Konstruktor dies ändern:
foreach (var ctrl in this.panel1.Controls)
OP, es könnte sich lohnen, diese Schaltflächen in eine "Panel" - oder "GroupBox" einzufügen und die untergeordneten Elemente dieses Steuerelements zu durchlaufen, so dass nur die richtigen Schaltflächen betroffen sind. So wie es aussieht, wenn Sie das übergeordnete Formular iterieren, könnten Sie andere Knöpfe haben, wo Sie diesen Handler _don't_ nicht wollen. – Equalsk
Im Code-behind, verwenden Sie eine for-Schleife, die die gleichen Event-Handler für alle Tasten zuweisen. Dieser Event-Handler wird als erster Parameter sender
übergeben, was die Schaltfläche ist, auf die Sie geklickt haben. Tippe das auf eine Button
und du kannst auf seinen Text zugreifen.
Also ... im Grunde meine Antwort, aber ohne Beispiele. –
@ rory.ap Also ... im Grunde Ihre Antwort, aber mit einer Erklärung. ;) – Servy
@Servy - Fixed that! –
- 1. Initialisieren Sie AMCharts auf Button Click Event
- 2. Button lossing click event nach jQuery animation
- 3. Wie lösche ich ein Button Click Event?
- 4. Radio Button Click Event wird nicht gefeuert
- 5. wie Button Button Click Event Code in AS3
- 6. Versuchen Sie, Click Click Event
- 7. Button click Event-Handler vor dem Laden der Seite
- 8. Raise button (oder ein beliebiges Steuerelement) click event manuell. C#
- 9. Wie programmiere ich programmgesteuert ein mx: Button click event?
- 10. Wie bekommt man Google Hangout Button Click Event?
- 11. Rufen Sie den .ashx-Handler vom Button click event
- 12. Wie erstellt man ein Button Click Event für die Formularmethode?
- 13. JQuery konnte Button On Click Event nicht verarbeiten
- 14. Warum wird mein Button click Event 4 Mal aufgerufen?
- 15. C# -Code hinter für Button Click Event, ASP.NET
- 16. ASP.NET Button innerhalb bootstrap modal nicht auslösen click event
- 17. Ich kann die Symbolleiste nicht fangen home button click event
- 18. JSSOR thumbail click event
- 19. JTabbedPane click event
- 20. JSF outputlabel click event
- 21. LinkButton Click Event
- 22. Clear plotly click event
- 23. Zurück Button Event Listener
- 24. Mit Click Event und Dragend Event
- 25. Verwenden Sie einen Button-Click-Event-Handler innerhalb eines anderen Button-Klick-Ereignisses in VBA
- 26. Selenium Click Event löst nicht angularjs ng-click
- 27. Abfangen html button click
- 28. Ionic Button ng-click
- 29. Angular Click Event funktioniert nicht, was gibt?
- 30. Scrollbar up button event
Sie müssen Ereignishandler für jede Schaltfläche hinzufügen. Was stimmt damit nicht? –
Ich habe gerade ein paar Buttons gepostet. Dies sind etwa 52 Tasten. Glauben Sie nicht, dass es lang sein würde ... –
Sie können alle Tasten auf die gleiche Weise behandeln lassen, indem Sie den Text der Taste vom Sender-Parameter abrufen. –