Handling Timer Events - and Creating an Alarm Clock in VB.net
By: Steven Holzner in VB.net Tutorials on 2009-03-22
To get an idea how timers work, I'll create an example alarm clock, called Timers. Here, the user can click the "Start clock" button to start the clock, which is displayed in a label control. (I've set the font of the label at design time to use a large font face). The clock's display is updated once a second in the timer in this example, Timer1. I've set the timer's Interval property to 1000 milliseconds, or one second, which means its Tick event occurs every second. I update the label's text like this in the Tick event handler: Label1.Text = TimeOfDay (the TimeOfDay property returns a DateTime object with the current time).
The user also can enter a time for the alarm to go off in three text boxes (using 24-hour format; for example 13:00:00 for 1:00:00 P.M.), and click the "Alarm on" radio button to "arm" the alarm clock. When the current time equals or exceeds the alarm time, the clock will beep once a second until the user clicks the "Alarm off" radio button. (These two radio buttons, "Alarm on" and "Alarm off", actually set the state of an internal Boolean variable, blnAlarm, which is True when the alarm is armed and False otherwise.)
Here's the whole code. Note that I'm using three handy properties here-TimeOfDay, which returns a DateTime object holding the current time of day; Today, which returns a DateTime object holding today's date; and Now, which returns a DateTime object that holds both today's time and date:
Public Class Form1 Inherits System.Windows.Forms.Form 'Windows Form Designer generated code Dim blnAlarm As Boolean = False Private Sub Timer1_Tick(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Timer1.Tick Label1.Text = TimeOfDay If TextBox1.Text <> "" And TextBox2.Text <> "" And _ TextBox3.Text <> "" Then Dim AlarmTime = New DateTime(Today.Year, Today.Month, _ Today.Day, CInt(TextBox1.Text), CInt(TextBox2.Text), _ CInt(TextBox3.Text)) If Now > AlarmTime And blnAlarm Then Beep() End If End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Timer1.Enabled = True End Sub Private Sub RadioButton1_CheckedChanged(ByVal sender As _ System.Object, ByVal e As System.EventArgs) _ Handles RadioButton1.CheckedChanged If RadioButton1.Checked Then blnAlarm = True End If End Sub Private Sub RadioButton2_CheckedChanged(ByVal sender As _ System.Object, ByVal e As System.EventArgs) _ Handles RadioButton2.CheckedChanged If RadioButton1.Checked Then blnAlarm = False End If End Sub End Class
Add Comment
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
- Your name, rating, website address, town, country, state and comment will be publicly displayed if entered.
- Aside from the data entered into these form fields, other stored data about your comment will include:
- Your IP address (not displayed)
- The time/date of your submission (displayed)
- Your email address will not be shared. It is collected for only two reasons:
- Administrative purposes, should a need to contact you arise.
- To inform you of new comments, should you subscribe to receive notifications.
- A cookie may be set on your computer. This is used to remember your inputs. It will expire by itself.
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
- Although the administrator will attempt to moderate comments, it is impossible for every comment to have been moderated at any given time.
- You acknowledge that all comments express the views and opinions of the original author and not those of the administrator.
- You agree not to post any material which is knowingly false, obscene, hateful, threatening, harassing or invasive of a person's privacy.
- The administrator has the right to edit, move or remove any comment for any reason and without notice.
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
- Data Science
- Android
- React Native
- AJAX
- ASP.net
- C
- C++
- C#
- Cocoa
- Cloud Computing
- HTML5
- Java
- Javascript
- JSF
- JSP
- J2ME
- Java Beans
- EJB
- JDBC
- Linux
- Mac OS X
- iPhone
- MySQL
- Office 365
- Perl
- PHP
- Python
- Ruby
- VB.net
- Hibernate
- Struts
- SAP
- Trends
- Tech Reviews
- WebServices
- XML
- Certification
- Interview
categories
Related Tutorials
Changes in Controls from VB6 to VB.net
Unstructured Exception Handling in VB.net
Structured Exception Handling in VB.net
Creating Sub Procedures in VB.net
Passing a Variable Number of Arguments to Procedures in VB.net
Specifying Optional Arguments with default values in Procedures in VB.net
Preserving a Variable's Values between Procedure Calls in VB.net
Throwing an Exception in VB.net
Comments