Как мне обработать щелчок левой кнопкой любой кнопки с помощью одной функции-обработчика событий в C # вместо одной для каждой кнопки? - PullRequest
0 голосов
/ 19 ноября 2018

Используя следующее:

<StackPanel>
    <Button Content="Button1" x:Name="btn1" Click="Button_Click"/>
    <Button Content="Button2" x:Name="btn2" Click="Button_Click"/>
    <TextBox x:Name="output"></TextBox>
</StackPanel>

Как мне обработать щелчок левой кнопкой любой кнопки с помощью одной функции-обработчика событий в C # вместо одной для каждой кнопки?

1 Ответ

0 голосов
/ 19 ноября 2018

Если вы хотите разместить несколько одинаковых кнопок внутри панели стека и не хотите писать Click="Button_Click" везде, то вы можете сделать это следующим образом.

  1. Добавьте атрибут runat="server" к вашей StackPanel и добавьте некоторый идентификатор, например ID="ButtonsContainer"
  2. Итерируйте по всем элементам управления внутри вашей StackPanel:
for (var i = 0; i < ButtonsContainer.Controls.Count; i++) {
    var button = ButtonsContainer.Controls[i] as Button;
    if(button != null)
        button.Click += Button_Click;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...