Csharp/C#教程:DateTimePicker默认值:如何避免它?分享


DateTimePicker默认值:如何避免它?

事实:

为什么会这样? 我怎么能避免呢?

我发现了问题所在。

如果DateTimePicker控件可见,则Value属性仅设置新值。 否则命令被忽略。

测试用例:

不起作用:

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

似乎与编程似乎添加选择器没有任何关系。

它与datetimepicker的Checked属性有关。 它通常设置为false。 至少这对我来说是个问题。

将datetimepicker.checked设置为true后,它确实从设置中检索了值。

我对此问题的丑陋解决方法包括在更改其值之前设置活动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); 

DateTimePicker在存储和检索它的值时存在一些问题。 将Value绑定到不可为空的DateTime时遇到了麻烦 – 我不时得到NullReferenceExeptions。 不知道为什么或何时。 它有时刚刚发生并崩溃了应用程序。

我刚刚使用两个DateTimePickers遇到了同样的问题。 通过动态生成它们并将它们添加到表单中,我能够让它们都显示正确的值。

如果你无法使它工作,你总是可以尝试使用不同的选择器。 Any + Time(TM)Datepicker / Timepicker AJAX日历窗口小部件从关联字段中提取其值,因此如果使用值初始化字段,或更改字段以具有值(例如在onload中),那么这就是你当显示选择器时会得到。 如果您遇到问题,只需通过联系页面提交一条消息,它将尽快解决。

上述就是C#学习教程:DateTimePicker默认值:如何避免它?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1022102.html

(0)
上一篇 2022年1月6日
下一篇 2022年1月6日

精彩推荐