Ứng dụng đơn tầng (Single-tier applications) cung cấp khả năng tái sử dụng bởi các thành phần (components). Components là các đoạn mã tái sử dụng đảm nhiệm chức năng của ứng dụng, là một thành phần khả thi nhị phân xây dựng từ dự án .NET, được tái sử dụng trong các ứng dụng khác. Một thành phần .NET là một assembly với phần mở rộng .dll, gồm một hay nhiều lớp được biên dịch. Components được phát triển sử dụng mô hình đối tượng thành phần COM (Component Object Model).
Giới hạn của Component: không thể liên lạc với ứng dụng khác trong môi trường phân tán.
Component có thể là thành phần xây dựng sẵn của .NET hay thành phần do người dùng định nghĩa. .NET Framework cung cấp nhiều components xây dựng sẵn, chẳng hạn các thành phần hiển thị cửa sổ trợ giúp (HelpProvider), thông báo lỗi (ErrorProvider), biểu tượng hệ thống (NotifyIcon), hộp thoại chuẩn (ColorDialog, FontDialog…), ngoài ra còn các thành phần không có biểu diễn trực quan, và chỉ biểu diễn một tính năng nào đó như thành phần đếm thời gian (Timer), thực hiện nhiệm vụ song song (BackgroundWorker)…
Để tham chiếu đến thành phần xây dựng sẵn, nếu là thành phần không nhìn thấy trên thanh công cụ, sử dụng hộp thoại Project/ Add Reference. Với thành phần nhìn thấy trên thanh công cụ, bạn kích phải trên tab nào đótrên Toolbox, chọn Choose Items, danh sách các thành phần hiển thị ở Tab COM Components hay .NET Framework Components, chọn thành phần cần tham chiếu
Ví dụ để tham chiếu đến thành phần xây dựng sẵn Calendar Control 12.0, bạn kích phải trên tab All Windows Forms trên Toolbox, chọn Choose Items, chọn điểu khiển Calendar Control 12.0 ở tab COM Components, kích nút OK, biểu tượng Calendar Control 12.0 sẽ xuất hiện trên Toolbox. Sau đó, bạn kéo lê điều khiển Calendar vào Winform, sẽ có 2 assemblies .NET tự động thêm vào ứng dụng, xem ở mục References trong cửa sổ Solution Explorer .NET cung cấp 3 kiểu thành phần người dùng định nghĩa:
- Điều khiển thừa kế từ điều khiển đã có
- Điều khiển tùy biến (Custom control)
- Điều khiển phức hợp (User control hay Composite control)
Điều khiển thừa kế từ điều khiển đã có
Để xây dựng một điều khiển thừa kế từ điều khiển đã có, chọn File/ New Project, Windows Forms Control Library, viết mã kế thừa lớp điều khiển đã có:
Ví dụ: public class Control1 : System.Windows.Forms.Button
Sau đó viết mã bổ sung phương thức, sự kiện, thuộc tính cho lớp, và biên dịch để tạo tập tin .dll trong thư mục <ThưMụcDựÁn>\bin\Debug
Ví dụ: Tạođiều khiển NumericTextBox chỉ chấp nhận nhập giá trị số
- Chọn File/New Project, Windows Forms Control Library, gõ tên dự án NumericTextBox
- Kích phải trên dự án, chọn Add/ User Control. Thay mã thừa kế: public partial class UserControl1 : TextBox. Bổ sung mã sau để yêu cầu người dùng chỉ nhập số
protected override void OnKeyPress(KeyPressEventArgs e)
{
//nếu ký tự nhập vào không phải là kiểu số, ký tự xóa trái backspace
if (!char.IsNumber(e.KeyChar) && e.KeyChar != '\b')
//sự kiện đã được xử lý (bỏ qua thao tác nhập vừa thực hiện)
e.Handled = true;
}
- Mở tập tin UserControl1.Designer.cs, chú thích dòng mã sau:
//this.AutoScaleMode=System.Windows.Forms.AutoScaleMode.Font;
- Biên dịch ứng dụng Build/ Build Solution để tạo tập tin NumericTextBox.dll
Tạo ứng dụng sử dụng điều khiển NumericTextBox
- Chọn File/ New Project, Windows Forms Application
- Kích phải trên All Windows Forms trong Toolbox, chọn Choose Items, ở tab .NET Framework Components, chọn Browse để duyệt đến tập tin NumericTextBox.dll
- Tạo Form, đặt điều khiển NumericTextBox vào form
- Chạy ứng dụng
Điều khiển tùy biến (Custom control)
Điều khiển Custom controlscó 2 loại: có giao diện và không có giao diện. Để tạo một Custom Control, thực hiện các bước sau:
- Chọn File/ New Project, Windows Forms Control Library(có giao diện) hay Class Library (không có giao diện)
- Nếu custom control có giao diện, thay đổi mã kế thừa:
public class CustomControl1 : Control
- Viết mã thuộc tính, phương thức...
- Biên dịch ứng dụng để tạo tập tin .dlltrong thư mục <ThưMụcDựÁn >\bin\Debug
Ví dụ: Tạo custom control không có giao diện
- Chọn File/ New Project, Class Library, gõ tên dự án là CValidator
- Tạo lớp CardValidator.cs, viết mã như sau, rồi biên dịch để tạo tập tin CValidator.dll
namespace CValidator
{
public class CardValidator
{
public string CustomerName { get; set; }
public string CardNumber { get; set; }
public CardValidator(string Name, string CardNo)
{
this.Name = Name;
this.CardNo = CardNo;
}
public bool Validate()
{
int cardlength = CardNo.Length;
if (cardlength == 16) return true;
return false;
}
}
}
Tạo ứng dụng Windows Form sử dụng thành phần CValidator.dll
- Chọn File/ New/ Project, chọn Windows Forms Application
- Để thêm một tham chiếu đến CValidator.dll, kích phải trên mục Reference trong cửa sổ Solution Explorer, chọn mục Add Reference, chọn Browse đểduyệt đến tập tin CValidator.dll
- Thiết kế Form như sau:
- Bổ sung mã using CValidator và viết sự kiện click vào nút Validate
CardValidator Validator = new CardValidator(txtCard.Text, txtCustName.Text);
if (Validator.Validate())
this.label3.Text = "Valid card Number" + Validator.CardNumber;
else
{
this.label3.Text = "Card number:";
MessageBox.Show("Invalid Card Number");
}
Điều khiển phức hợp (User control hay Composite control)
Có thể kết hợp nhiều điều khiển để tạo một điều khiển mới. Điều khiển mới hoạt động như một điều khiển đơn. Tất cả user control đều thừa kế lớp System.Windows.Forms.UserControl.
Để tạo user control, bạn thực hiện các bước sau:
- Chọn File/ New Project, Windows Forms Control Library
- Thiết kế giao diện người dùng của user control
- Viết mã để thêm phương thức, thuộc tính cho điều khiển
- Biên dịch ứng dụng, sẽ tạo tập tin .dll trong thư mục <ThưMụcDựÁn>\bin\Debug
Tạo ứng dụng Windows Form sử dụng user control:
- Chọn File/ New/ Project, Windows Forms Application
- Bổ sung điều khiển vừa tạo vào Toolbox bằng cách kích phải trên Toolbox, chọn Choose Items, tab .NET Framework Components, Browse để duyệt đến tập tin .dll của user control, OK
Ví dụ: Tạo user control như sau:
- File/ New Project, Windows Form Control Library, gõ tên dự án là DigitalClock
- Add/ User Control, thiết kế User Control như sau:
Bổ sung điều khiển Label
Bổ sung điều khiển Timer với thuộc tính:
Interval: 1000
Enabled: True
- Kích đúp vào điều khiển Timerđể mở phương thức đáp ứng sự kiện Tick, bổ sung mã sau:
label1.Text = DateTime.Now.ToString();
- Biên dịch ứng dụng: Build/Build Solution để tạo DigitalClock.dll
Tạo ứng dụng sử dụng user control
- File/ New Project, Windows Forms Application
- Kích phải trên tab All Windows Forms trên Toolbox, Choose Items, tab .NET Framework Components, Browse, duyệt đến DigitalClock.dll
-Tạo form, bổ sung điều khiển DigitalClock vào form
- Chạy ứng dụng
» Tin mới nhất:
» Các tin khác: