DateTimePicker显示今天的日期,而不是显示其实际值

时间:2009-10-23 18:54:35

标签: c# .net datetimepicker winforms

我们在表单上的自定义UserControl上有几个DateTimePickers。它们是可见的,但未启用(仅用于显示目的)。加载UserControl时,DateTimePickers将从DataRow中分配值,该DataRow来自DataSet,该DataSet存储从SQL Server存储过程返回的单个记录。

有一种不一致的行为,用户有时会看到今天的日期而不是分配给DateTimePicker的日期。我是否将我想要的日期分配给.Value属性或.Text属性似乎无关紧要:

txtstart.Value = (DateTime) dr["Group_Start_Date"];
txtend.Text = dr["Term_Date"].ToString();

我希望上面两个语句中的那个,使用Value属性的语句更合适。但是,在这两种情况下,无论数据库中的值如何,都会向用户显示今天的日期。对于txtstart.Value,Visual Studio向我显示该值已按预期分配。那么为什么不向用户显示该日期而不是今天的日期呢?

5 个答案:

答案 0 :(得分:14)

我找到了答案。您必须将复选框值设置为选中以指示非空值。

this.dateSold.Checked = true; //根据需要设置为true或false this.dateSold.ShowCheckBox = false;

答案 1 :(得分:0)

拥有多个DateTimePickers似乎是一个问题。通过以编程方式创建具有我想要的值的DateTimePickers并将它们添加到表单中,我能够解决问题(错误?)。

答案 2 :(得分:0)

如果你们还想知道的话,我在这里找到了根本问题answered it here

答案 3 :(得分:0)

我最终选择了AB Nolan的建议。禁用DateTimePicker背后的原因从来都不清楚,所以回到2009年10月23日,而不是继续使用控件,我只是在TextBoxes中显示了我想要的日期。

答案 4 :(得分:0)

我也遇到了这个问题,发现你确实需要将.Checked值设置为True

我在属性窗口中设置了Checked属性,但它仍然无效,所以我只是在分配值之前在代码中设置它并修复了问题。