Cuantas veces extendiendo funcionalidad de un control no hemos querido definir un eventHandler, sin tener que crear un método para ello? Bueno, no muchas veces pero a mí se me ocurren un par de usos bastante interesantes. Yo quería hacer un Extension Method para soportar que un botón mostrar una imagen distinta cuando está deshabilitado. El código sería muy sencillo usando lambda expresions, además de ser una solución bastante elegante:
Mostrando entradas con la etiqueta Event. Mostrar todas las entradas
Mostrando entradas con la etiqueta Event. Mostrar todas las entradas
lunes, 8 de agosto de 2011
lunes, 9 de noviembre de 2009
Problemas con el Evento DateChanged en el MonthView Calendar
Estuve teniendo problemas similares a los de los siguientes posts:
http://bytes.com/topic/c-sharp/answers/428395-monthcalendar-datechanged-event-problem
http://www.groupsrv.com/dotnet/about215734.html
Este código presenta el problema descrito, que el evento se enclicla (loop), la línea que causa el problema es un MessageBox.Show o un UpdateBoldedDates (Puede haber otras instrucciones).
Nadie parece haber encontrado la solución, pero, creo que una aproximación que me funcionó es utilizar la función BeginInvoke con aquellas funciones que puede que disparen el evento de nuevo. El código corregido sería:
El BeginInvoke ejecuta el UpdateBoldedDates después de haber ejecutado el evento DateChanged, evitando así que se encicle. Espero que a alguien le sea útil.
Nota: El evento se dispara 2 veces, es por eso que se agrega la variable processedDate y se valida que sea diferente a la fecha de inicio.
http://bytes.com/topic/c-sharp/answers/428395-monthcalendar-datechanged-event-problem
http://www.groupsrv.com/dotnet/about215734.html
Este código presenta el problema descrito, que el evento se enclicla (loop), la línea que causa el problema es un MessageBox.Show o un UpdateBoldedDates (Puede haber otras instrucciones).
Nadie parece haber encontrado la solución, pero, creo que una aproximación que me funcionó es utilizar la función BeginInvoke con aquellas funciones que puede que disparen el evento de nuevo. El código corregido sería:
El BeginInvoke ejecuta el UpdateBoldedDates después de haber ejecutado el evento DateChanged, evitando así que se encicle. Espero que a alguien le sea útil.
Nota: El evento se dispara 2 veces, es por eso que se agrega la variable processedDate y se valida que sea diferente a la fecha de inicio.
Etiquetas:
.NET,
DateChanged,
Event,
MonthCalendar
Suscribirse a:
Entradas (Atom)