This control displays the combined date and time, with calendar dropdown and updown
arrows. It is basically two DatePicker controls merged using a SplitContainer. The
splitter bar can be adjusted to give more room to either side.
This is my first attempt at such a control, so if there is another way, I'm open to suggestions.
The DatePicker control can display only date or time values. I currently use a combined date/time control in our MFC apps (BCGDateTime). When I moved to VS 2005, I couldn't find one written for .NET, so I tackled this.
Adding the control
Use Add Reference to add a reference to the
DateAndTimeControls assembly in your project.
Add the control to the toolbox by right-clicking in a category and using Choose Items.
Drag the control onto the form. The properties panel shows the new properties and events:
DateTimeValue - the default property of the control.
DateValue - just the date value of the control
TimeValue - just the time value of the control>
MinDate - the minimum date/time value for the control
MaxDate - the maximum date/time value for the control
DateFormat - the enumerated datepicker format value (ie long)
DateCustom - the custom format mask (ie dd-MMM-yyyy)
TimeFormat - the enumerated DatePicker format value (ie time)
TimeCustom - the custom format mask (ie hh:mi tt)
ValueChanged - the default event for the control. fired whenever the value is changed.
Using the control
To get a value from the control:
dim dt as Date
dt = DateTimeControl1.DateTimeValue
tTextbox1.Text = dt.ToString("dd-mmm-yyyy hh:mi tt")
To put a value in the control:
DateTimeControl1.DateTimeValue = Date.Now
The constructor will give an error if the date is outside the MinDate-MaxDate range.
To clear the control:
DateTimeControl1.DateTimeValue = new Date(0L)
The date can also be cleared by typing <Backspace> in the control.
Points of Interest
Thanks to this project, I learned how to expose new class events to the outside world.