¿Dónde darse de baja eventos en un UserControl
? Me suscribo en el evento Load
, como lo hice en formularios. Y en los formularios generalmente me daré de baja en el evento Closing
, pero no puedo encontrar nada similar en el UserControl
...Dónde darse de baja eventos en un control de usuario de Windows Forms
Respuesta
¿Es necesario cancelar la suscripción? ¿Se mantiene una referencia al control del usuario después de haber sido descargado? De lo contrario, no debe preocuparse por los controladores de eventos porque tan pronto como se elimina el control del usuario de la memoria, también lo hacen los controladores de eventos. No se filtran referencias de esa manera.
Como otros han dicho es que hay realmente una necesidad de darse de baja en el escenario?
Si realmente necesita para darse de baja sin embargo lo hacen exactamente lo contrario de suscribirse:
UserControl1.Click -= new EventHandler(UserControl1_Click);
Pero, ¿dónde lo haría? – Svish
Hay son momentos en los que se quiere hacer esto (por ejemplo, cuando se utiliza CAB).
Para completar, la respuesta a su pregunta es:
protected override void OnCreateControl()
{
base.OnCreateControl();
if(!DesignMode) //only time this.ParentForm should be null
this.ParentForm.FormClosing += ParentForm_FormClosing;
}
private void ParentForm_FormClosing(object sender, FormClosingEventArgs e)
{
//Unregister events here
}
También podría invalidar Dispose()
El problema que este control no tiene ninguna referencia a los padres o formulario principal. –
- 1. Darse de baja Lambda Gestor de Eventos ** ** con el encierro
- 2. ¿es necesario darse de baja de los eventos?
- 3. Windows Forms Separator Control
- 4. Control de usuario Haga clic en - Windows Forms
- 5. evento Click para .Net (Windows Forms) control de usuario
- 6. Complex .Net 2.0 Windows Forms control: ¿por dónde empezar?
- 7. Eventos de control de usuario
- 8. ¿Cómo darse de baja de la función suscrita en knockout?
- 9. ¿La mejor forma de suspender eventos de control en Windows Forms?
- 10. Windows Forms Control e iframes de WebBrowser
- 11. ¿Puede un delegado anónimo darse de baja de un evento una vez que se ha activado?
- 12. Obtenga un control de Windows Forms por nombre en C#
- 13. ¿Dónde y cuándo se invoca InitializeComponent en el control de Windows Forms en VB.NET?
- 14. ¿Debo darme de baja de los eventos?
- 15. Imagen simple en Windows Forms Control StatusStrip
- 16. Control de panel de autodesplazamiento acoplable para Windows Forms
- 17. Comportamiento extraño del control de cuadro combinado de Windows Forms
- 18. de línea con control de etiqueta en Windows Forms
- 19. cómo generar un enlace para darse de baja del correo electrónico
- 20. Buscar un control en Windows Forms por nombre
- 21. Cómo establecer el foco en un control en una aplicación de Windows Forms?
- 22. Windows Forms control DataGridView tiene diferentes tipos de control en la misma columna
- 23. Magento: no hay evento para el boletín de noticias suscribirse y darse de baja
- 24. Buscar control por nombre desde los controles de Windows Forms
- 25. ¿Cómo darse de baja de un evento que utiliza una expresión lambda?
- 26. ¿Cómo ignoro la activación de eventos simples al cambiar los estados de control en C# Windows Forms?
- 27. Barra de estado en C# Windows Forms
- 28. Control de usuario frente a Windows Form
- 29. Windows Forms: capturar MouseWheel
- 30. ¿Cómo darse de baja una función anónima en el método de eliminación de una clase?
Así que si control de usuario está escuchando algo, y control de usuario se sale del ámbito, a continuación, el controlador de eventos desaparece y el control de usuario será coleccionado como debería. Mientras que si algo sale del alcance, no se recogerá hasta que UserControl se anule la suscripción o salga del alcance mismo. ¿Lo entendí bien? – Svish
@Svish: No. Si control de usuario está escuchando algo, y control de usuario se sale del ámbito, se ** ** No se recogerá control de usuario, como algo todavía mantiene una referencia al control de usuario. I Algo sale de alcance y UserControl no contiene ninguna referencia al mismo, se recopilará algo. – dtb
Así, en otras palabras, si existirá algo después de que el control de usuario muere, voy a tener que darse de baja para el control de usuario para ser recogido? – Svish