Bài viết này trình bày cách sử dụng điều khiển Timer trong ứng dụng Windows Forms.
Windows Forms có một điều khiển Timer có thể sử dụng tại thời điểm thiết kế cũng như tại thời gian chạy. Trong bài viết này, tôi sẽ hướng dẫn sử dụng điều khiển Timer trong ứng dụng Windows Forms tại thời điểm thiết kế cũng như tại thời gian chạy.
Điều khiển Timer tăng sự kiện tại một khoảng thời gian nhất định mà không cần sử dụng thread. Nếu bạn cần phải thực hiện một số mã sau khoảng thời gian nhất định liên tục, bạn có thể sử dụng điều khiển Timer.
Thuộc tính Lớp Timer
Thuộc tính Enabled của bộ đếm thời gian hiện tại nếu bộ đếm thời gian đang chạy. Chúng ta có thể thiết lập thuộc tính này là true để bắt đầu timer và false để ngăn chặn bộ đếm thời gian.
Thuộc tính Interval đại diện cho thời gian trong mili giây, trước khi sự kiện Tick được nâng lên so với sự xuất hiện cuối cùng của sự kiện Tick. Dòng thứ hai tương đương với 1000 mili giây. Vì vậy, nếu bạn muốn có sự kiện hẹn giờ được bắn mỗi 5 giây, bạn cần phải thiết lập thuộc tính Interval 5000.
Timer t = new Timer();
t.Interval = 2000;
timer1.Enabled = true;
Tạo Timer
Điều khiển Timer không có đại diện trực quan và làm việc như phần trong background.
Design-time
Bạn có thể tạo bộ đếm thời gian tại thời gian thiết kế bằng cách kéo và thả Timer từ hộp công cụ đến form. Sau đó, bạn có thể sử dụng F4 hoặc kích chuột phải vào trình đơn Properties để thiết lập thuộc tính hẹn giờ như thể hiện trong hình 1. Như bạn trong hình 1, thuộc tính Enabled là false và Interval được thiết lập 1000 mili giây (1 giây).
Hình 1
Điều đầu tiên bạn muốn làm là, thay đổi Enabled là true nên giờ sẽ bắt đầu khi ứng dụng của bạn bắt đầu.
Bây giờ bước tiếp theo là thêm xử lý sự kiện. Nếu bạn đi đến cửa sổ sự kiện bằng cách nhấn vào biểu tượng tia chớp, bạn sẽ thấy chỉ có một sự kiện Tick như bạn có thể thấy trong hình 2. Kích đúp vào nó sẽ thêm xử lý sự kiện Tick.
Hình 2
Xử lý sự kiện Tick trông giống như sau.
private void timer1_Tick(object sender, EventArgs e)
{
}
Giờ đây những gì code bạn viết trong xử lý sự kiện này, nó sẽ được thực hiện mỗi giây. Ví dụ, nếu bạn có một điều khiển ListBox trên form và bạn muốn thêm một số mặt hàng vào nó, mã sau đây sẽ thực hiện.
private void timer1_Tick(object sender, EventArgs e)
{
listBox1.Items.Add(DateTime.Now.ToLongTimeString() + "," + DateTime.Now.ToLongDateString());
}
Run-time
Lớp Timer đại diện cho điều khiển Timer và được sử dụng để tạo ra Timer tại thời gian chạy. Đoạn mã sau đây tạo ra Timer tại thời gian chạy, thiết lập thuộc tính và xử lý sự kiện.
Timer t = new Timer();
t.Interval = 2000;
timer1.Enabled = true;
timer1.Tick += new System.EventHandler(OnTimerEvent);
Mã xử lý sự kiện trông giống như sau:
private void OnTimerEvent(object sender, EventArgs e)
{
listBox1.Items.Add(DateTime.Now.ToLongTimeString() + "," + DateTime.Now.ToLongDateString());
}