Sin embargo, hace poco note lo que considero como un pequeño bug en el control DateTimePicker: el cambiar de un mes a otro en el control tambien dispara el evento ValueChanged
Normalmente no hay problema en esto, dado que el principal uso que se le da a este control es la captura de datos, sin embargo, el problema se presenta al momento de usar este evento como iniciador de un proceso, al que en este caso llamaremos “A“
En el mejor de los casos, lo que pasara es que cada vez que en el control cambie de un mes a otro, el evento ValueChanged se disparará y el proceso A se iniciara, si este proceso se ejecuta sobre el flujo del programa principal, no habra mas problemas que la lentitud de las busquedas, si se ejecuta sobre un hilo, puedes imaginar los problemas que te ocasionaran ^_^
La solucion que yo tuve fue la de utilizar el evento DropDown, para capturar el valor de la fecha actual y almacenarlo en una cadena:
private Sdate as datePrivate Sub DTSel_DropDown(ByVal sender As Object, ByVal e As System.EventArgs) Handles DTSel.DropDown
Sdate = DTSel.ValueEnd Sub
Despues, en el vento CloseUp, compararlo con el valor que el evento posee, si cambio iniciar el proceso A
Private Sub DTSel_CloseUp(ByVal sender As Object, ByVal e As System.EventArgs) Handles DTSel.CloseUp
If DTSel.Value <> Sdate Then
A()
End if
End Sub
Claro esta, ignorando el evento ValueChanged
Nos vemos
Gracias por el post. Me estaba volviendo tarumba porque me disparaba dos veces el evento ValueChanged al forzar un cambio de valor por código. Controlándolo por CloseUp se comporta como yo deseaba. Muchas gracias, a mi no se me hubiera ocurrido