views:

555

answers:

3

We have a couple of DateTimePickers on a custom UserControl, on a Form. They are visible, but not enabled (for display purposes only). When the UserControl is loading, the DateTimePickers are assigned values from a DataRow that came from a DataSet which stores a single record returned from a SQL Server stored procedure.

There is an inconsistent behavior in which the users sometimes see today's date instead of the date that was assigned to the DateTimePicker. It doesn't seem to matter whether I assign the date I want to the .Value property or the .Text property:

txtstart.Value = (DateTime) dr["Group_Start_Date"];
txtend.Text = dr["Term_Date"].ToString();

I expect that of the two statements above, the one using the Value property is more appropriate. But, in both cases, today's date is displayed to the user regardless of the values that were in the database. In the case of txtstart.Value, Visual Studio shows me that the value was assigned as expected. So why isn't it displaying that date to the user instead of today's date?

A: 

It seems to be a problem with having multiple DateTimePickers. I was able to get around the issue (bug?) by programatically creating the DateTimePickers with the values I wanted and adding them to the form.

CACuzcatlan
A: 

I found out what the root problem was here, answered it here on a similar question if you guys still wanted to know.

GONeale
+1  A: 

I found the answer. You MUST set the checkbox value to checked to indicate a non-null value.

this.dateSold.Checked = true; // set to true or false, as desired this.dateSold.ShowCheckBox = false;

taylorg
Holy shit this is the most retarded behavior ever. Thank you so much. For some reason my control was unchecked, even though it is defaulted to check... Probably happening somewhere in a base class...
Stuart Branham