2010-11-27 23 views
14

Estoy trabajando en la aplicación winform. y he agregado algunos controles dinámicamente, por ej. Button ahora quiero agregar un evento a ese botón creado, ¿cómo puedo realizar esto? también puede alguien referirme un libro C# que cubrió bien todos los temas en winform? Gracias.Agregar eventos a controles agregados dinámicamente

+2

Libros: me ha gustado C# en una cáscara de nuez, pero yo creo que ninguno de C# libro cubre esto. – Niki

Respuesta

18
// create some dynamic button 
Button b = new Button(); 
// assign some event to it 
b.Click += (sender, e) => 
{ 
    MessageBox.Show("the button was clicked"); 
}; 
// add the button to the form 
Controls.Add(b); 
+1

Gracias, por favor, explique '+ =' y '=>' más o denme un enlace donde pueda leer más sobre él. – salman

+4

El operador '+ =' asigna un manejador a un evento. Debería [leer sobre eventos] (http://msdn.microsoft.com/en-us/library/aa645739.aspx). –

+3

El '=>' indica una expresión lambda. Debería [leer acerca de las expresiones lambda] (http://msdn.microsoft.com/en-us/library/bb397687.aspx) y [métodos anónimos] (http://msdn.microsoft.com/en-us/library /0yw3tz5k.aspx). –

12

estoy totalmente de acuerdo con la respuesta de Darin, y esta es otra sintaxis de añadir evento dinámico

private void Form1_Load(object sender, EventArgs e) 
{ 
    Button b = new Button(); 
    b.Click += new EventHandler(ShowMessage); 
    Controls.Add(b); 
} 

private void ShowMessage(object sender,EventArgs e) 
{ 
    MessageBox.Show("Message"); 
} 
Cuestiones relacionadas