DateTimePicker ist lustig Fragen

Habe ich ein paar lustige (?!?) Probleme mit dem DateTimePicker und ich hoffe jemand kann mir helfen. Ich habe ein Formular mit einem DateTimePicker auf es und ich will es zu binden, um eine Eigenschaft einer benutzerdefinierten Klasse. DateTimePicker hat ein benutzerdefiniertes format eingestellt dd.MM.yyyy HH:mm:ss. Hier ist, was ich versucht haben, und die Schwierigkeiten, mit denen versucht:

  • Machte ich eine Bindung an die Wert - Eigenschaft des DateTimePicker. Die Eigenschaft meiner benutzerdefinierten Klasse enthält ein gültiges Datum ist. Wenn ich die app starte, bekomme ich eine ArgumentOutOfRangeException, die besagt, dass "01.01.0001 00:00:00" ist kein Gültiger Wert für Wert, und es sollte zwischen MinDate und MaxDate. (Aber ich kann nicht einstellen, weder DateTime.MaxValue noch DateTime.MinValue-der value-Eigenschaft!)
  • Machte ich eine Bindung an die Text - Eigenschaft des DateTimePicker. Alles läuft gut, aber die Sekunden werden immer als "00". Kann ich verschiedene Werte eingeben und Sie spiegeln sich auf die gebundene Eigenschaft meiner benutzerdefinierten Klasse!

Irgendwelche Ideen?

Bearbeiten
Hier ist der Codeausschnitt aus der designer-Datei:

this.dateTimePickerTimestampFrom.CustomFormat = "dd.MM.yyyy HH:mm:ss";
this.dateTimePickerTimestampFrom.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.bindingSourceSelectLogEntries, "DateFrom", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
this.dateTimePickerTimestampFrom.Enabled = false;
this.dateTimePickerTimestampFrom.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.dateTimePickerTimestampFrom.Location = new System.Drawing.Point(81, 42);
this.dateTimePickerTimestampFrom.Name = "dateTimePickerTimestampFrom";
this.dateTimePickerTimestampFrom.Size = new System.Drawing.Size(147, 20);
this.dateTimePickerTimestampFrom.TabIndex = 3;

Edit 2
Die bindingsource ist eine benutzerdefinierte Klasse mit ein paar Eigenschaften. Die Werte sind gültig im moment der Bindung eingestellt ist. Ich habe es in dem folgenden code:

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);

    //Exception is thrown at the following line.
    //controller is an instance of my custom class containing valid values.
    bindingSourceSelectLogEntries.DataSource = controller; 
}
  • Bezug (Referenz): stackoverflow.com/questions/8359380/datetimepicker-and-seconds. Können Sie fügen Sie einige code? Vielleicht hast du eine "dumme" Fehler, dass Sie nicht sehen.
  • Ich habe alle Bindungen und Einstellungen im Eigenschaftenfenster des Designers. Ich poste die relevanten Zeilen.
  • Wich .net und visual studio-version verwendest du ?
  • Ich benutze VisualStudio 2010 SP1 und das target framework ".NET Framework 4". (Nicht das client-Profil)
  • Das minimale Datum und Zeit ausgewählt werden können in der Steuerung ist '1/1/1753 00:00:00'. Sie können versuchen, '01.01.0001 00:00:00', sondern Steuern durch Standard-änderungen Mindest-Datum zu '1/1/1753 00:00:00'
  • ich versuchte Ihren code, und es funktioniert gut für mich. Das ist seltsam.
  • und dknaack: in der Tat, das ist seltsam...
  • Nur um zu klären: was ist Ihre verbindliche Quelle? sind Sie sicher, dass es DateTimes und Sekunden?
  • Siehe "Edit 2" von meiner Frage, ich habe die Informationen, die Sie angefordert haben.
  • IMHO steuert mindate eingestellt ist seltsam, 1753, weil der SQL mindate. Lesen Sie hier für weitere Informationen über mindates.
  • Das Bearbeiten nicht wirklich helfen Sie mir, es ändert nur meine Frage nach "sind Sie sicher, dass controller hat DateTimes mit Sekunden?"
  • Oh sorry, ich dachte, ich war klar genug, als ich sagte, "es enthält gültige Werte". Nur clearify, der controller enthält ein gültiges Datum mit einer Zeit Teil, Sekunden unterscheidet sich von "00".
  • Ein Hinweis darauf, dass für alle Fachleute: Die Ausnahme wird ausgelöst, bevor die gebundene Eigenschaft des benutzerdefinierten Klasse controller ist angefordert!

InformationsquelleAutor Fischermaen | 2011-12-07
Schreibe einen Kommentar