DateTimePicker jamais les mises à jour!

J'ai quelques DateTimePickers dans une forme que jamais de mise à jour.

J'ai essayé Value et Text, Invalidate() et puis Update() et aussi Refresh()...

Rien ne semble changer leurs valeurs à partir de la date actuelle!

Peu importe ce que j'ai mis, les dates de cours sont (relativement)aujourd'hui!

Est-ce une .NET 3.5 bug ou quoi?

(Non, je ne peux pas utiliser .NET 4 sur ce projet.)


Si vous voulez vraiment un peu de code, alors le voici: c'est dateTimePicker1.Value = user.BirthDay;. Aussi, si j'écris MessageBox.Show(user.BirthDay.ToString()); je reçois une jolie boîte en informer l'utilisateur de l'anniversaire (jour de mon anniversaire, sur ma machine). (Donc il y a une valeur dans la variable...)


Dois-je aussi mentionner qu'ils sont uniquement pour les dates et non pas les temps?


Ok, je vois, j'ai besoin d'écrire plus:

Tout d'abord, la méthode de contrôle est mis à jour est abonné à la Form.Load événement. Par conséquent, il est appelé/déclenché/invoquée lorsque la forme et les contrôles sont visibles et "exécution".

Deuxièmement, regardez ce morceaux de code et leur résultat:

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!

Ce n'est pas agréable... La sortie est la date d'aujourd'hui. (Aujourd'hui, je veux dire le jour où le code a été exécuté.)

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

Le mauvais contrôle! 1900 n'est pas égal à 1753!

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

Time warp? O_O

De toute façon, tout le code ressemble à ceci:

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
}

Donc, toute solution? xC

vous êtes premier signalé ce bug
Avez-vous mis un MinDate pour le datetimepicker? Êtes-vous sûr que personne d'autre n'est d'écraser votre valeur? Parce que je pense qu'il est assez sûr de dire qu'il n'y a pas un bug dans le cadre 😉
Avez-vous essayé le réglage de la Valeur de DateTime.Parse(user.BirthDay.ToString())?
Voulez-vous insérer votre BithDay code de la propriété?
Il n' pas de travail, sinon je n'aurais pas posté cette question, non?

OriginalL'auteur Vercas | 2010-11-13