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

Mat*_*att 8 .net c# datetimepicker winforms

我们在表单上的自定义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();
Run Code Online (Sandbox Code Playgroud)

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

小智 16

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

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

  • 我确认`Checked`属性似乎是问题所在.即使在设计器中将其设置为"true",它也可能包含值"false". (2认同)

Mat*_*att 0

我最终接受了 AB 诺兰的建议。我一直不清楚禁用 DateTimePicker 背后的原因,所以回到 2009 年 10 月 23 日,我没有继续对控件大惊小怪,而是在 TextBoxes 中显示了我想要的日期。