2011-02-24 49 views
12

Tengo una matriz de botón que se genera dinámicamente en tiempo de ejecución. Tengo la función de hacer clic con el botón en mi código, pero no puedo encontrar la manera de configurar el nombre del clic en el código. Así,Botón WPF haga clic en C# código

Cuál es el código equivalente para XAML:

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

O, ¿qué debo colocar para "????" en el siguiente código:

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

Respuesta

31
Button btn = new Button(); 
btn.Name = "btn1"; 
btn.Click += btn1_Click; 

private void btn1_Click(object sender, RoutedEventArgs e) 
{ 
    // do something 
} 
9

El siguiente debe hacer el truco:

btn.Click += btn1_Click; 
3
// 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

No creo que WPF es compatible con lo estás tratando de lograr es decir . asignar método a un botón utilizando el nombre del método o btn1.Click = "btn1_Click". Deberá utilizar el enfoque sugerido en las respuestas anteriores, es decir, el evento de clic de botón de registro con el método apropiado btn1.Click + = btn1_Click;

0

Usted debe colocar debajo de la línea

btn.Click = btn.Click + btn1_Click; 
Cuestiones relacionadas