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.

No hay comentarios:

Publicar un comentario