E' del tutto normale ciò, a ogni cambiamento dell'intervallo Min e Max delle date viene aggiornato anche il valore corrente del controllo e a ogni aggiornamento della data del controllo viene scatenato un'evento.Originariamente inviato da Veronica80
Prova con questo:
codice:Private Sub cmdSetMinMax_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSetMinMax.Click 'primo settaggio limiti data DateTimePicker1.MinDate = CDate("01/01/2011") DateTimePicker1.MaxDate = CDate("31/12/2011") 'secondo settaggio limiti data DateTimePicker1.MinDate = CDate("01/01/2010") DateTimePicker1.MaxDate = CDate("31/12/2010") DateTimePicker1.Value = CDate(Date.Now) End Sub Private Sub DateTimePicker1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker1.ValueChanged Label1.Text = DateTimePicker1.Value.ToString End Sub
Per cui se oggi è 20 dicembre 2010 e il controllo ha come valore corrente 20 Dicembre 2010 se tu imposti :
il valore corrente della data viene aggiornato automaticamente al valore minimo (essendo quello attuale piu piccolo), ovvero "01/01/2011" in questo modo:DateTimePicker1.MinDate = CDate("01/01/2011")
DateTimePicker1.MaxDate = CDate("31/12/2011")
e ciò scatena un primo evento.codice:If (Me.Value < Me.min) Then Me.Value = Me.min End If
Successivamente tu imposti:
il valore corrente della data viene aggiornato automaticamente al valore massimo, ovvero "31/12/2010" in questo modo:DateTimePicker1.MinDate = CDate("01/01/2010")
DateTimePicker1.MaxDate = CDate("31/12/2010")
e ciò scatena un secondo evento.codice:If (Me.Value > Me.max) Then Me.Value = Me.max End If
![]()