Нажатие кнопки WPF в коде C # - PullRequest
       0

Нажатие кнопки WPF в коде C #

16 голосов
/ 24 февраля 2011

У меня есть массив кнопок, которые динамически генерируются во время выполнения.У меня есть функция для нажатия кнопки в моем коде, но я не могу найти способ установить имя нажатия кнопки в коде.Итак,

каков эквивалентный код для XAML:

<Button x:Name="btn1" Click="btn1_Click">

Или что я должен разместить для "????"в следующем коде:

Button btn = new Button()btn.Name = "btn1";btn.???? = "btn1_Click";

Ответы [ 5 ]

38 голосов
/ 24 февраля 2011
Button btn = new Button();
btn.Name = "btn1";
btn.Click += btn1_Click;

private void btn1_Click(object sender, RoutedEventArgs e)
{
    // do something
}
11 голосов
/ 24 февраля 2011

Следующее должно сделать трюк:

btn.Click += btn1_Click;
3 голосов
/ 24 февраля 2011
// sample C#
public void populateButtons()
{
    int xPos;
    int yPos;

    Random ranNum = new Random();

    for (int i = 0; i < 50; i++)
    {
        Button foo = new Button();
        Style buttonStyle = Window.Resources["CurvedButton"] as Style;

        int sizeValue = ranNum.Next(50);

        foo.Width = sizeValue;
        foo.Height = sizeValue;
        foo.Name = "button" + i;

        xPos = ranNum.Next(300);
        yPos = ranNum.Next(200);

        foo.HorizontalAlignment = HorizontalAlignment.Left;
        foo.VerticalAlignment = VerticalAlignment.Top;
        foo.Margin = new Thickness(xPos, yPos, 0, 0);

        foo.Style = buttonStyle;

        foo.Click += new RoutedEventHandler(buttonClick);
        LayoutRoot.Children.Add(foo);
   }
}

private void buttonClick(object sender, EventArgs e)
{
  //do something or...
  Button clicked = (Button) sender;
  MessageBox.Show("Button's name is: " + clicked.Name);
}
1 голос
/ 24 февраля 2011

Я не думаю, что WPF поддерживает то, что вы пытаетесь достичь, т.е. назначение метода кнопке, используя имя метода или btn1.Click = "btn1_Click".Вы должны будете использовать подход, предложенный в ответах выше, т.е. зарегистрировать событие нажатия кнопки с соответствующим методом btn1.Click + = btn1_Click;

0 голосов
/ 22 августа 2013

Вы должны поставить ниже линии

btn.Click = btn.Click + btn1_Click;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...