我们在表单上的自定义UserControl上有几个DateTimePickers.它们是可见的,但未启用(仅用于显示目的).加载UserControl时,DateTimePickers将从DataRow中分配值,该DataRow来自DataSet,后者存储从sql Server存储过程返回的单个记录.
有一种不一致的行为,用户有时会看到今天的日期而不是分配给DateTimePicker的日期.我是否将我想要的日期分配给.Value属性或.Text属性似乎无关紧要:
txtstart.Value = (DateTime) dr["Group_Start_Date"]; txtend.Text = dr["Term_Date"].ToString();
我希望在上面的两个语句中,使用Value属性的语句更合适.但是,在这两种情况下,无论数据库中的值如何,都会向用户显示今天的日期.在txtstart.Value的情况下,Visual Studio向我显示该值已按预期分配.那么为什么不向用户显示该日期而不是今天的日期呢?
解决方法
我找到了答案.您必须将复选框值设置为选中以指示非空值.
this.dateSold.Checked = true;//根据需要设置为true或falsethis.dateSold.ShowCheckBox = false;