Ho un DateTimePicker che ho impostato per mostrare solo il mese e l'anno come segue:Come posso fare in modo che una selezione data/ora contenga sempre l'ultimo giorno del mese mentre mostra solo il mese e l'anno?
myDateTimePicker.Format = DateTimePickerFormat.Custom;
myDateTimePicker.CustomFormat = "MMMM yyyy";
myDateTimePicker.ShowUpDown = true;
Tuttavia, voglio il valore alla data di essere sempre l'ultimo giorno del mese selezionato, così mi sono messo il DateTime in caso ValueChanged utilizzando:
DateTime selectedDate = myDateTimePicker.Value;
DateTime lastDayOfMonth = new DateTime(
selectedDate.Year,
selectedDate.Month,
DateTime.DaysInMonth(selectedDate.Year, selectedDate.Month));
myDateTimePicker.Value = lastDayOfMonth;
il problema è, se ho un mese come marzo selezionato, e io modificare il mese a febbraio utilizzando i tasti su/giù controlli, ottengo il seguente errore prima che io possa gestire l'evento ValueChanged:
ArgumentOutOfRangeException was unhandled
Year, Month, and Day parameters describe an un-representable DateTime.
Questo è comprensibile perché la data era il 31 marzo e viene modificata in data 31 febbraio che è una data non valida. Tuttavia, voglio cambiarlo al 28 febbraio (o al 29 febbraio).
Come posso ottenere questo risultato?
questo è un bug nel DateTimePicker. La soluzione è qui: http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/69b10b5b-a034-426e-a045-2bed8a1637a3 –
Dovresti metterlo come risposta, @HansPassant :) –
I già risposto, io non sono schizzinoso su dove :) –