Composite Date & Time Control
Apr 11, 2007
2 min read
.NET2.0
VB
Windows
.NET
Visual-Studio
Dev
Intermediate

by Richard Jones
Contributor
4.26/ 5
Introduction
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.
Background
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 controlTimeValue
- just the time value of the control>MinDate
- the minimum date/time value for the controlMaxDate
- 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 =
or
Date.TryParse(TextBox1.Text, DateTimeControl1.DateTimeValue)
The constructor will give an error if the date is outside the MinDate-MaxDate range.
To clear the control:
DateTimeControl1.DateTimeValue =
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.
License
This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)