Multipurpose Digital Clock Control using .NET






4.59/5 (41 votes)
Feb 16, 2004
2 min read

308339

13468
A digital clock user control which can be used as a regular clock, stop watch or count down timer. Options include changing display color, freezing the clock and setting multiple alarms.
- Digital Clock Control source - 19.6 Kb (Visual Studio 2002)
- Digital Clock Control Demo project - 12.2 Kb (compiled using .NET 1.0)
- Digital Clock Control Demo project - 14.7 Kb (compiled using .NET 1.1)
- Digital Clock Control source - 20.4 Kb (Visual Studio 2003)
Introduction
The Digital Clock Control is a versatile user control with options for:
- Digital clock
- Stop watch
- Count down timer
- Setting multiple alarms
- Freezing the clock
- Multiple color display
- Resizable display
The digits can be displayed in three different colors - Red, Blue and Green.
The control adjusts the digits size with the size of the rectangle of the control. A ratio of 1:2 is maintained between the height and the width of the large digits and half the size for smaller ones. The clock control also supports 2 types of formats - 12 hour and 24 hour.
Using the Digital Clock control
Place the SriClocks.dll and Digital.bmp files in a single directory. At design time, right click in the ToolBox of Visual Studio, browse for and select SriClocks.dll file. The following image shows the control selected:
On pressing OK, the control is added to the ToolBox as shown below:
Now, drag and drop the control on to a form to create the Digital Clock control as any other user control.
Demo project - TestClock.exe
The demo project included shows all the capabilities and usage of the Clock control. Here is a screenshot.
Code to use the DigitalClockCtrl
To display a normal watch, which is also the default, just set the clock type to DigitalClock
as shown below. Optionally, you may set the 24 hour or 12 hour format using ClockDisplayFormat
of DigitalClockCtrl
. The 12 hour format will display 'A' for AM and 'P' for PM. The default is the 12 hour format.
// set the clock type to DigitalClock
digitalClockCtrl.SetClockType = SriClocks.ClockType.DigitalClock;
// setting display to 24 hour format
digitalClockCtrl.ClockDisplayFormat = SriClocks.ClockFormat.TwelveHourFormat;
To use the countdown timer, create and add delegates to the clock control's CountDownDone
event. Then set the clock type to CountDown
. When the countdown is over, the clock control will fire the CountDownDone
event.
// declare a callback method which implements the countdown
// delegate declared in DigitalClockCtrl and add it to CountDownDone events
private void OnCountDownDone()
{
}
.....
.....
// Add the delegate method to CountDownDone events
// Whenever a countdown is over the clock control calls this delegate
digitalClockCtrl.CountDownDone += new DigitalClockCtrl.CountDown(OnCountDownDone);
......
// set the countdown time
digitalClockCtrl.CountDownTime = ms; // ms - milliseconds
digitalClockCtrl.SetClockType = SriClocks.ClockType.CountDown;
To start the stop watch, set the clock type to ClockType.StopWatch
.
// Start the stop watch
digitalClockCtrl.SetClockType = SriClocks.ClockType.StopWatch;
To freeze the clock display, set the clock type to ClockType.Freeze
. This will freeze the clock till the clock type is reset to DigitalClock
, CountDown
or StopWatch
. The functionality is particularly useful when using the stopwatch.
// to freeze the clock display
digitalClockCtrl.SetClockType = SriClocks.ClockType.Freeze;
To change the display color, set the SetDigitalColor
property of the control to one of the DigitalColor
enumerations.
// setting the digits color to GreenColor
digitalClockCtrl1.SetDigitalColor = SriClocks.DigitalColor.GreenColor;
To set alarms, create delegates and add them to RaiseAlarm
event of the clock control. When an alarm is raised by the control, it fires the RaiseAlarm
events.
// Create the Alarm delegates public void OnRaiseAlarm() { } .... .... // add the delegate to the RaiseAlarm event digitalClockCtrl.RaiseAlarm += new DigitalClockCtrl.Alarm(OnRaiseAlarm); .... // set the alarm which accepts values as System.DateTime structure. // DateTime.Parse is used here to parse the input text from user // When the alarm is raised by the control // the OnRaiseAlarm method declared above is called digitalClockCtrl.AlarmTime = DateTime.Parse(Alarmtime.Text);