我们在表单上的自定义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或false,根据需要this.dateSold.ShowCheckBox = false;