我们在表单上的自定义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向我显示该值已按预期分配。那么为什么不向用户显示该日期而不是今天的日期呢?
答案 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
属性,但它仍然无效,所以我只是在分配值之前在代码中设置它并修复了问题。