gpt4 book ai didi

c# - DateTimePicker 有趣的问题

转载 作者:太空宇宙 更新时间:2023-11-03 11:29:09 25 4
gpt4 key购买 nike

我有一些关于 DateTimePicker 的有趣(?!?)问题,希望有人能帮助我。我有一个带有 DateTimePicker 的表单,我想将它绑定(bind)到自定义类的属性。 DateTimePicker 的自定义格式设置为 dd.MM.yyyy HH:mm:ss。以下是我尝试过的方法以及这些尝试的问题:

  • 我绑定(bind)了 DateTimePicker 的 Value 属性。我的自定义类的属性包含一个有效日期。当我运行该应用程序时,我收到一个 ArgumentOutOfRangeException,指出“01.01.0001 00:00:00”不是有效值,它应该介于 MinDate 和 MaxDate 之间。 (但我不能将 DateTime.MaxValue 和 DateTime.MinValue 都设置为值属性!)
  • 我绑定(bind)了 DateTimePicker 的 Text 属性。一切运行良好,秒数始终显示为“00”。我可以输入不同的值,它们会反射(reflect)到我的自定义类的绑定(bind)属性中!

有什么想法吗?

编辑这是设计器文件中的代码片段:

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;

编辑 2bindingsource 是一个包含几个属性的自定义类。这些值在设置绑定(bind)时有效。我在下面的代码中设置它:

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;
}

最佳答案

我自己找到了解决方案,我想告诉大家,这样其他人可能不会像我一样在同一个问题上花费那么多时间。

我的设计由一个表单和一个 Controller (包含要呈现的数据)组成。在表单中,我想在设计器中做所有事情,以尽量减少背后的代码。所以我在表单上有一个绑定(bind)源,将我的 Controller 实例作为数据源。 ReflectorPro 帮助我发现,涉及 CurrencyManager 是因为 BindingSource 被视为列表。因此,在从 Controller 获取值之前,所有绑定(bind)控件的所有值都设置为空。 DateTimePicker 不喜欢 null 作为其 Value 属性的值并抛出异常。

现在我在后台代码中手动进行了绑定(bind),一切都如我所料。

关于c# - DateTimePicker 有趣的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8412055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com