【发布时间】:2011-12-07 07:58:50
【问题描述】:
我对 DateTimePicker 有一些有趣的 (?!?) 问题,希望有人可以帮助我。我有一个带有 DateTimePicker 的表单,我想将它绑定到自定义类的属性。 DateTimePicker 的自定义格式设置为dd.MM.yyyy HH:mm:ss。以下是我尝试过的方法以及这些尝试带来的麻烦:
- 我绑定了 DateTimePicker 的 Value 属性。我的自定义类的属性包含一个有效日期。当我运行该应用程序时,我得到一个 ArgumentOutOfRangeException,指出“01.01.0001 00:00:00”不是一个有效的值,它应该在 MinDate 和 MaxDate 之间。 (但我不能将 DateTime.MaxValue 和 DateTime.MinValue 都设置为 value 属性!)
- 我绑定了 DateTimePicker 的 Text 属性。一切运行良好,但秒始终显示为“00”。我可以输入不同的值,它们会反映到我的自定义类的绑定属性中!
有什么想法吗?
编辑 这是设计器文件中的代码sn-p:
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;
编辑 2 bindingsource 是一个包含几个属性的自定义类。这些值在设置绑定时有效。我在下面的代码中设置它:
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;
}
【问题讨论】:
-
相关(供参考):stackoverflow.com/questions/8359380/datetimepicker-and-seconds。你能粘贴一些代码吗?也许你犯了一个你没有看到的“愚蠢”错误。
-
@Otiel:我在设计器的属性表中做了所有的绑定和设置。我将发布相关行。
-
您使用的是哪个 .net 和 Visual Studio 版本?
-
@dknaack:我使用 VisualStudio 2010 SP1,目标框架是“.NET Framework 4”。 (不是客户资料)
-
@Fischermaen 我试过你的代码,它对我来说很好。真奇怪。
标签: c# winforms datetimepicker