Esta es probablemente una pregunta muy simple, pero por alguna razón, incluso la manera correcta de búsqueda en la web de la respuesta se me escapa ...evento Click para .Net (Windows Forms) control de usuario
estoy tratando para crear un control de usuario que consta de algunas etiquetas y barras de progreso. Sin embargo, quiero que todo el control tenga un evento "Click" que se genera sin importar en qué elemento dentro del control se haga clic. He creado un procedimiento de "handleClick" que se asigna a cada control:
private void HandleClick(object sender, EventArgs e)
{
// Call the callback function, if we were asked to
if (OnClick != null)
{
EventArgs ee = new EventArgs();
OnClick(this, ee);
}
else
{
MessageBox.Show("OnClick was null!");
}
}
OnClick en este caso es una variable definida en el nivel de control:
public new event EventHandler OnClick;
Ahora bien, esto sólo funciona correctamente en el formar. En una etiqueta, muestra el MessageBox y luego llama al evento en el formulario adjunto. Todo el resto muestra el cuadro de mensaje.
Tengo la sensación de que esto debería ser obvio, pero una tarde de frustración me ha hecho sentir que me estoy perdiendo algo que debería ser evidente, pero cuando lo vea me voy a sentir como un completo bufón. .. ¿Alguien puede dejar de reírse de mi locura el tiempo suficiente para aclararme dónde me he equivocado?
Debe registrar el mismo evento de clic para cada uno de los controles. También llama a ese evento cuando se hace clic en el control del usuario. –
En caso de que esté interesado, este post ayudado a resolver es: http://stackoverflow.com/questions/1071579/user-control-click-windows-forms Básicamente, retire handleClick, y la propiedad y sustituir éste lugar : \t \t nuevo manejador de sucesos evento público click \t \t { \t \t \t añadir \t \t \t { \t \t \t \t base.Click + = valor; \t \t \t \t foreach (control de control en los controles) \t \t \t \t {control de \t \t \t \t \t.Haga clic en + = valor; \t \t \t \t} \t \t \t} \t \t \t eliminar \t \t \t { \t \t \t \t base.Click - = valor; \t \t \t \t foreach (control de control en los controles) \t \t \t \t { \t \t \t \t \t control.Click - = valor; \t \t \t \t} \t \t \t}} \t \t –