vida shown net formulario form event create ciclo user-controls delegates event-handling click windows-forms-designer

user-controls - net - form shown event c#



Evento de clic padre fuego cuando se hace clic en el niƱo en el control de usuario de Windows (1)

Tengo un control de usuario

public partial class ButtonControl : UserControl

que tiene dos controles de etiqueta y cuadro de imagen

this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.text = new System.Windows.Forms.Label();

He usado este control en una forma de Windows

this.appointmentButton = new DentalSoft.UI.Controls.ButtonControl();

creó un evento

this.appointmentButton.Click += new System.EventHandler(this.appointmentButton_Click);

pero el problema es que si hago clic en la imagen o la etiqueta dentro del control, el evento click no se dispara. Deseo activar este evento de clic sin importar dónde haga clic el usuario dentro del control. ¿Es posible?


Sí, es un asunto simple. Cuando hace clic en los controles secundarios, reciben el evento click y el control de usuario no. De modo que puede suscribirse a los eventos de clic de control infantil y, cuando ocurren, simplemente elevar el evento de clic de control de usuario y parecerá que hace clic sin importar dónde se encuentre el mouse.

Simplemente haga doble clic en el cuadro de imagen y en la etiqueta para crear los manejadores de eventos de clic y luego agregue una línea de código para llamar al método de control de usuario padre OnClick.

private void text_Click(object sender, EventArgs e) { this.OnClick(new EventArgs()); } private void pictureBox1_Click(object sender, EventArgs e) { this.OnClick(new EventArgs()); }