的DateTimePicker默认值:如何避免呢?(DateTimePicker Default v

2019-08-04 13:16发布

事实:

  • 我有一个TabControl有2个标签,每个标签都有2的DateTimePicker。
  • 在Load事件中,我将所有的DTPS的价值。
  • 所有DTPS对真正的设置ShowCheckBoxes并检查设置为false。
  • 当我执行程序,在第一个选项卡的DTPS都OK,但是当我检查第二个选项卡上的DTPS,它们显示当前时间,不是我的负担事件设置的时间。

为什么出现这种情况? 我怎样才能避免呢?

Answer 1:

我发现这个问题是在这里。

Value属性只有在设置新值DateTimePicker控制是可见的。 否则,命令将被忽略。

测试用例:

不工作:

 this.picker = new DateTimePicker
        {
            Checked = false,
            Font = new System.Drawing.Font("Verdana", 9.75F),
            Format = System.Windows.Forms.DateTimePickerFormat.Time,
            Location = new System.Drawing.Point(5, 5),
            Name = "picker",
            ShowUpDown = true,
            Size = new System.Drawing.Size(120, 23),
            Visible = false
        };
        this.Controls.Add(this.picker);
        this.picker.Value = this.picker.Value.Date.AddHours(1);
        this.picker.Visible = true;

作品:

 this.picker = new DateTimePicker
        {
            Checked = false,
            Font = new System.Drawing.Font("Verdana", 9.75F),
            Format = System.Windows.Forms.DateTimePickerFormat.Time,
            Location = new System.Drawing.Point(5, 5),
            Name = "picker",
            ShowUpDown = true,
            Size = new System.Drawing.Size(120, 23),
            Visible = false
        };
        this.Controls.Add(this.picker);
        this.picker.Visible = true;
        this.picker.Value = this.picker.Value.Date.AddHours(1);

不会出现有什么用编程方式增加似乎选择器。



Answer 2:

它与的DateTimePicker的Checked属性做。 它通常设置为false。 至少,这是问题给我。

在datetimepicker.checked设置为true后,它并检索设置的值。



Answer 3:

我的丑的解决方法这个问题,包括在集中的活动选项卡中的DTP的驻留改变其值之前,这样的事情:

DateTime dat1 = DateTime.Today;
DateTime dat2 = dat1.AddDays(1).AddSeconds(-1);

dtpCreatedStart.Value = dat1;
dtpCreatedEnd.Value = dat2;
tbc.SelectTab(1);
dtpModifiedStart.Value = dat1;
dtpModifiedEnd.Value = dat2;
tbc.SelectTab(0);


Answer 4:

的DateTimePicker具有存储和检索它的价值的一些问题。 值绑定到非null的日期时间,当我遇到了麻烦 - 我NullReferenceExeptions不时。 不知道为什么或什么时候。 它有时只是发生了坠毁的应用。



Answer 5:

我只是碰到了使用两个DateTimePickers同样的问题。 我是能够得到他们两人表现出通过动态生成它们,并将它们添加到形成正确的价值。



Answer 6:

如果你不能得到它的工作,你总是可以尝试使用不同的选择器。 在任何+时间(TM)日期选择器/ Timepicker AJAX日历空间从相关领域的拉动它的价值,所以如果你用一个值初始化字段或更改字段有一个值(如在onload事件),那么这就是你显示选择器时,就会得到。 如果你有它的问题,只是通过接触页面提交信息,并且将尽快解决。



文章来源: DateTimePicker Default value: How to avoid it?