8

我们在表单上的自定义 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 显示该值已按预期分配。那么为什么它不向用户显示该日期而不是今天的日期呢?

4

4 回答 4

17

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

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

于 2010-03-03T18:33:59.157 回答
1

我也遇到了麻烦,发现您确实需要将.Checked值设置为True.

Checked在属性窗口中设置了属性,但它仍然不起作用,所以我只是在分配值之前在代码中设置它并解决了问题。

于 2012-06-08T23:18:51.337 回答
0

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

于 2009-11-12T21:55:57.943 回答
0

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

于 2011-10-27T14:55:05.090 回答