Timer::Tick Event
Occurs when the specified timer interval has elapsed and the timer is enabled.
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
Calling the Assert method on the Debug class from within the Tick event may not behave as expected, as displaying the assertion dialog box may cause Windows to raise the Tick event repeatedly. We recommend that you refrain from testing assertions within this event, and use the Write, WriteIf, WriteLine, or WriteLineIf methods instead.
For more information about handling events, see Handling and Raising Events.
The following code example implements a simple interval timer, which sets off an alarm every five seconds. When the alarm occurs, a MessageBox displays a count of the number of times the alarm has started and prompts the user whether the timer should continue to run.
public ref class Class1 { private: static System::Windows::Forms::Timer^ myTimer = gcnew System::Windows::Forms::Timer; static int alarmCounter = 1; static bool exitFlag = false; // This is the method to run when the timer is raised. static void TimerEventProcessor( Object^ /*myObject*/, EventArgs^ /*myEventArgs*/ ) { myTimer->Stop(); // Displays a message box asking whether to continue running the timer. if ( MessageBox::Show( "Continue running?", String::Format( "Count is: {0}", alarmCounter ), MessageBoxButtons::YesNo ) == DialogResult::Yes ) { // Restarts the timer and increments the counter. alarmCounter += 1; myTimer->Enabled = true; } else { // Stops the timer. exitFlag = true; } } public: static void Main() { /* Adds the event and the event handler for the method that will process the timer event to the timer. */ myTimer->Tick += gcnew EventHandler( TimerEventProcessor ); // Sets the timer interval to 5 seconds. myTimer->Interval = 5000; myTimer->Start(); // Runs the timer, and raises the event. while ( exitFlag == false ) { // Processes all the events in the queue. Application::DoEvents(); } } }; int main() { Class1::Main(); }
Available since 1.1