-
- Tổng tiền thanh toán:
Khi mua hàng tại website của chúng tôi, quý khách sẽ được:
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.
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 đó.
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 |
Đ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.
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 |
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.
Xử lý một số sự kiện sau:
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:
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ị.
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.
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.
Code:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Bai_07_01 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void timer1_Tick(object sender, EventArgs e) { DateTime dt = DateTime.Now.Add(new TimeSpan()); lbl_Time.Text = string.Format("{0:hh:mm:ss tt}", dt); lbl_Date.Text = string.Format("{0:dd/MM/yyyy}", dt); } private void timer2_Tick(object sender, EventArgs e) { Form2 frm2 = new Form2(); progressBar1.Increment(1); lbl_HoanThanh.Text = "Connecting to from " + progressBar1.Value.ToString() + "%"; if (progressBar1.Value ==progressBar1.Maximum) { timer2.Enabled = false; frm2.ShowDialog(); } } private void btn_HienThi_Click(object sender, EventArgs e) { if(progressBar1.Enabled ==true) { progressBar1.Enabled = false; timer2.Start(); timer1.Start(); } else { progressBar1.Enabled = true; timer2.Stop(); timer1.Stop(); } } private void Form1_Load(object sender, EventArgs e) { } } }
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é !!!