¡DateTimePicker nunca se actualiza!

tengo algunosDateTimePickers en una forma que nunca se actualiza.
He intentadoValue yText, Invalidate() y entoncesUpdate() y tambiénRefresh()...

¡Nada parece cambiar sus valores desde la fecha actual!
No importa lo que establezca, ¡las fechas actuales son (relativamente) hoy!

¿Es esto un error de .NET 3.5 o qué?
(No, no puedo usar .NET 4 en este proyecto).

Si realmente quieres un código, aquí está:dateTimePicker1.Value = user.BirthDay;. Además, si escriboMessageBox.Show(user.BirthDay.ToString()); Recibo una bonita caja que dice el cumpleaños del usuario (mi cumpleaños, en mi máquina). (Entonces, hay un valor en la variable ...)

¿Debo mencionar también que son solo para fechas y no para horas?

Ok, veo que necesito escribir más:

En primer lugar, el método en el que se actualiza el control se suscribe alForm.Load evento. En consecuencia, se llama / dispara / invoca cuando el formulario y los controles están visibles y "en ejecución".

En segundo lugar, mire estas piezas de código y su resultado:

MessageBox.Show(user.BirthDay.ToString()); // Shows 12.12.1995 (in my regional format)
dateTimePicker1.Value = user.BirthDay; // assigned to 12.12.1995
MessageBox.Show(dateTimePicker1.Value.ToString()); // Shows today's date!

Eso no es bueno ... La salida es la fecha de hoy. (Por hoy quiero decir el día en que se ejecutó el código).

dateTimePicker1.MinDate = new DateTime(1900,1,1); // January 1st, 1900
MessageBox.Show(dateTimePicker1.MinDate.ToString()); // January 1st, 1753 ...

Mal control! ¡1900 no es igual a 1753!

dateTimePicker1.MaxDate = DateTime.Today;
// In reality, I need it to today's date
MessageBox.Show(dateTimePicker1.MinDate.ToString()); // December 31st, 9998

¿Túnel del tiempo? O_O

De todos modos, todo el código se ve así:

public void Form_Load(object sender, EventArgs e)
{
    this.user = User.Load(path);
    // this.user is a field.
    // path is a static field which holds the absolute path of the file in which is serialized that data of the user.

    MessageBox.Show(user.BirthDay.ToString()); // Shows 12.12.1995 (in my regional format)
    dateTimePicker1.Value = user.BirthDay; // assigned to 12.12.1995
    MessageBox.Show(dateTimePicker1.Value.ToString()); // Shows today's date!

    dateTimePicker1.MinDate = new DateTime(1900,1,1); // January 1st, 1900
    MessageBox.Show(dateTimePicker1.MinDate.ToString()); // January 1st, 1753 ...

    dateTimePicker1.MaxDate = DateTime.Today;
    MessageBox.Show(dateTimePicker1.MinDate.ToString()); // December 31st, 9998
}

Entonces, ¿alguna solución? xC

Respuestas a la pregunta(2)

Su respuesta a la pregunta