CƠ BẢN
SỰ KIỆN
NÂNG CAO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Cách dùng ProgressBar - Timer trong C# winforms

Trong hướng dẫn này mình sẽ giới thiệu các bạn một trong các điều khiển đặc biệt tiếp theo đó chính là ProgressBar và Timer. Đây là hai điều khiển được sử dụng khá phổ biến vì nó liên quan đến thời gian.

Chúng ta sẽ cùng nhau tìm hiểu về công dụng cũng như là các thuộc tính và phương thức của ProgressBar, Timer. Sau đó mình sẽ thực hiện một chương trình áp dụng hai điều khiển trên.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. ProgressBar

ProgressBar được sử dụng để hiển thị thời gian thực hiện của một công việc nào đó.

winforms bai7 01 PNG

Một số thuộc tính của ProgressBar:

Thuộc tính Mô tả
Maximum Giá trị tối đa của ProgressBar. Khi ProgressBar được lấp đầy nghĩa là ProgressBar đã đạt giá trị Maximum
Minimum Giá trị nhỏ nhất của ProgressBar. Khi ProgressBar trông rỗng nghĩa là ProgressBar đang có giá trị Minimum
Value Giữ giá trị hiện tại của ProgressBar, giá trị này nằm trong đoạn Minimum và Maximum
Style Kiểu hiển thị của ProgressBar
Step Lượng giá trị thêm vào Value khi phương thức PerformStep() được gọi

Một số phương thức của ProgressBar:

Phương thức Mô tả
PerformStep() Phương thức giúp tăng ProgressBar. Giá trị tăng là giá trị được thiết lập trong thuộc tính Step
Increment(<giá trị>) Phương thức giúp tang ProgressBar. Giá trị tăng là tham số đầu vào <giá trị> của phương thức

2. Timer

Điều khiển Timer cho phép thực thi lại một hành động sau một khoảng thời gian xác định.

winforms bai7 01 PNG

Một số thuộc tính của Timer:

Thuộc tính Mô tả
Interval Thiết lập giá trị là một số nguyên. Giá trị nguyên này là thời lượng của một chu kì tính
Enable Thiết lập giá trị True hoặc False. Nếu là giá trị True thì điều khiển Timer hoạt động, nếu là giá trị False thì điều khiển Timer không hoạt động

Một số phương thức thường dùng của Timer:

Phương thức Mô tả
Start() Start() kích hoạt điều khiển Timer hoạt động. Phương thức này tương ứng với việc thiết lập giá trị thuộc tính Enable là True
Stop() Dừng hoạt động của điều khiển Timer. Phương thức này tương ứng với việc thiết lập giá trị thuộc tính Enable là False

Trong điều khiển Timer chỉ có một sự kiện đó là Tick:

Sự kiện Mô tả
Tick Tick là sự kiện được gọi trong mỗi chu kỳ Interval

3. Ví dụ sử dụng các điều khiển ProgressBar và Timer

Trong ví dụ này mình sẽ thực hiện viết một chương trình áp dụng hai điều khiển ProgressBar và Timer, cụ thể sẽ tạo giao diện cho Form như sau rồi thực hiện một số sự kiện.

winforms bai7 01 PNG

Xử lý một số sự kiện sau:

  • Sử dụng Timer để hiện thị ngày giờ hiện tại.
  • Sử dụng ProgressBar để hiển thị % công việc đang thực hiện.
  • Xử lý sự kiện cho nút Button, khi click vào thì ngày giờ hiện tại sẽ hiện thị ra và thanh ProgressBar sẽ hiển thị % thực hiện công việc. Khi đạt đến 100% thì load Form hai.

winforms bai7 03 PNG

Bây giờ chúng ta sẽ bắt đầu tạo giao diện cho Form1 và Form2. Đối với Form1 thì ta cần một số điều khiển như sau:

  • 2 label để hiển thị ngày và hiển thị giờ.
  • 1 ProgressBar để hiển thị thời gian thực hiện công việc.
  • 2 Timer, Timer1 để tạo sự kiện hiển thị ngày giờ hiện tại, Timer2 để tạo sự kiện hiển thị % thực hiện công việc.

Sau khi tạo xong giao diện cho 2 Form, bây giờ đến lúc ta đi xử lý xự kiện cho điều khiển. Đới với Timer thì ta xử lý trên sự kiện Tick, ta vào Properties của Timer Click double vào sự kiện Tick để viết.

Trong Timer1 ta sẽ tạo sự kiện hiển thị ngày tháng hiện tại. Ta tạo mới một DateTime, sau đó sử dụng String.Format() để format kiểu hiển thị.

private void timer1_Tick(object sender, EventArgs e)
        {
            DateTime dt =  DateTime.Now.Add(new TimeSpan());
            lbl_gio.Text = String.Format("{0:hh:mm:ss tt}", dt);
            lbl_ngaythang.Text = String.Format("{0:dd/MM/yyyy}", dt);
        }

Trong Timer2 ta sẽ tạo sự kiện hiển thị % thực hiện công việc và khi đạt đến 100% thì load Form2. Ta sử dụng thuộc tính Maximum để thực hiện điều này.

private void timer2_Tick(object sender, EventArgs e)
        {
            Form2 frm = new Form2();

            progressBar1.Increment(1);
            lbl_complete.Text = "Connecting to from " + progressBar1.Value.ToString() + "%";
            if (progressBar1.Value == progressBar1.Maximum)
            {
                timer2.Enabled = false;
                frm.ShowDialog();
            }
        }

Sau khi tạo sự kiện cho ProgressBar và Timer, bây giờ ta sẽ viết sự kiện cho nút Button, khi Click vào thì sẽ bật Timer1 và Timer 2. Trong trường hợp ProgressBar đang ở trạng thái Enabled thì ta cho nó bằng False và ngược lại.

private void button1_Click(object sender, EventArgs e)
        {
            if(progressBar1.Enabled == true)
            {
                progressBar1.Enabled = false;
                timer2.Start();
                timer1.Start();
            }
            else
            {
                progressBar1.Enabled = true;
                timer2.Stop();
                timer1.Stop();
            }
        }

Kết quả: Trước khi Click vào Button "Hiển thị ngày giờ" và sau khi Click.

winforms bai7 01 PNGwinforms bai7 02 PNG

4. Kết luận

Như vậy là chúng ta đã tìm hiểu xong hai điều khiển đặc biệt trong C# winform. Đây là hai điều khiển được sử dụng rất nhiều, vì trong ứng dụng luôn cần đến thời gian để có thể thực hiện một cách chính xác. Ở các bài tiếp theo, mình sẽ tiếp tục giới thiệu các bạn các điều khiển đặc biệt khác, các bạn chú ý theo dõi nhé !!!

Cùng chuyên mục:

Cách dùng Stack (ngắn xếp) trong C#

Cách dùng Stack (ngắn xếp) trong C#

Mình sẽ giới thiệu về các đặc điểm, thuộc tính và phương thức của Stack…

Cách dùng Queue (hàng đợi) trong C#

Cách dùng Queue (hàng đợi) trong C#

Mình sẽ giới thiệu về các đặc điểm, thuộc tính, phương thức của Queue, cũng…

Cách dùng Hashtable (bảng băm) trong C#

Cách dùng Hashtable (bảng băm) trong C#

Cụ thể sẽ tìm hiểu Hashtable là gì? các đặc điểm của nó, cùng với…

Sự kiện Enter và Leave trong C# Winforms

Sự kiện Enter và Leave trong C# Winforms

Trong bài viết này mình sẽ hướng dẫn các bạn cách ...

Sự kiện KeyPress, KeyDown, KeyUp trong C# Winforms

Sự kiện KeyPress, KeyDown, KeyUp trong C# Winforms

Một câu hỏi được đặt ra là làm cách nào để có thể phát hiện…

Sắp xếp trộn trong C# (Merge Sort)

Sắp xếp trộn trong C# (Merge Sort)

Trong bài viết này mình sẽ hướng dẫn các bạn cách sắp xếp các ..

Sắp xếp nổi bọt trong C# (Bubble Sort)

Sắp xếp nổi bọt trong C# (Bubble Sort)

Trong bài viết này mình sẽ hướng dẫn các bạn cách sắp ...

Cách in ra hình tam giác ký tự * trong C#

Cách in ra hình tam giác ký tự * trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách ...

Cách tính tổng các số chẵn từ 1 đến N trong C#

Cách tính tổng các số chẵn từ 1 đến N trong C#

Trước khi đi vào viết chương trình, chúng ta cùng tìm hiểu qua số chẵn…

Cách tính tổng các số lẻ từ 1 đến N trong C#

Cách tính tổng các số lẻ từ 1 đến N trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách tính tổng các lẻ…

Cách đếm số chữ số của một số nguyên trong C#

Cách đếm số chữ số của một số nguyên trong C#

Chúng ta cùng xem qua một số ví dụ để hiểu rõ hơn về chương…

Cách tính chu vi và diện tích hình tam giác trong C#

Cách tính chu vi và diện tích hình tam giác trong C#

Tam giác là một loại hình cơ bản trong hình học, có ba đỉnh là…

Cách tính chu vi và diện tích hình tròn trong C#

Cách tính chu vi và diện tích hình tròn trong C#

Trước khi đi vào viết chương trình tính chu vi và diện ..

Cách tính chu vi và diện tích hình chữ nhật trong C#

Cách tính chu vi và diện tích hình chữ nhật trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn ...

Cách xóa phần tử trùng lặp khỏi mảng trong C#

Cách xóa phần tử trùng lặp khỏi mảng trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách loại bỏ các ..

Cách tìm tất cả các chuỗi con của chuỗi đã cho trong C#

Cách tìm tất cả các chuỗi con của chuỗi đã cho trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách tìm ...

Cách xóa các ký tự trùng lặp khỏi chuỗi trong C#

Cách xóa các ký tự trùng lặp khỏi chuỗi trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách xóa các ký tự…

Đếm số lần xuất hiện của ký tự trong chuỗi trong C#

Đếm số lần xuất hiện của ký tự trong chuỗi trong C#

Trong bài viết này minh sẽ hướng dẫn các bạn cách đếm ...

Cách chuyển đổi nhị phân sang thập phân trong C#

Cách chuyển đổi nhị phân sang thập phân trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách chuyển đổi số ...

Cách chuyển đổi thập phân sang nhị phân trong C#

Cách chuyển đổi thập phân sang nhị phân trong C#

Số nhị phân là các con số có cơ số là 2. Các số nhị…

Top