· Ứng dụng đơn tầng (Single-tier applications) cung cấp khả năng tái sử dụng bởi 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
· Components được phát triển sử dụng Component Object Model (COM)
· 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
Khái niệm Components
· Component 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
· Có hai loại:
o Thành phần xây dựng sẵn của .NET
o Thành phần do người dùng định nghĩa
Thành phần xây dựng sẵn
· .NET Framework cung cấp nhiều components xây dựng sẵn
· Ví dụ: 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ư Timer, BackgroundWorker…
· Tham chiếu đến thành phần xây dựng sẵn:
o 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
o Thành phần nhìn thấy trên thanh công cụ:kích phải trên tab 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….
Ví dụ thành phần xây dựng sẵn
· Kích phải trên tab trên Toolbox, chọn Choose Items
· Chọn điểu khiển Calendar Control 11.0 ở tab COM Components
· Kích nút OK, biểu tượng Calendar Control 11.0 sẽ xuất hiện trên Toolbox
· Kéo lê điều khiển Calendar vào Winform, sẽ có 2 assemblies .NET tự động tạo và thêm vào ứng dụng, xem ở mục References trong cửa sổ Solution Explorer
Thành phần người dùng định nghĩa
.NET Framework cung cấp 3 kiểu thành phần người dùng định nghĩa:
· Controls thừa kế từ điều khiển đã có
· Custom controls
· User controls (Composite controls)
Controls thừa kế từ điều khiển đã có
· File/ New Project, Windows Forms Control Library
· Viết mã kế thừa lớp điều khiển đã có:
· Ví dụ: public class CustomControl1 : System.Windows.Forms.TextBox
· Viết mã bổ sung hàm, sự kiện, thuộc tính cho lớp
· Biên dịch để tạo file DLL trong thư mục <Application Folder>\bin\Debug
Tạo điều khiển NumericTextBox chỉ chấp nhận nhập giá trị số
· File/New Project, Windows Forms Control Library
· Kích phải trên dự án, chọn Add/ User Control
· Thay mã thừa kế: public partial class NumericTextBox : TextBox
· Thêm mã sau:
//Bắt buộc user 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ở file 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 ứng dụng sử dụng control
· 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 file NumericTextBox.dll, OK
· Tạo form, đặt điều khiển NumericTextBox vào form
· Chạy ứng dụng
Custom controls:
Điều khiển Custom controls có 2 loại:Có giao diện, Không có giao diện
Tạo Custom Control:
· 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, kích phải trên dự án, chọn Add/ Custom Control:
public class CustomControl1 : Control
· Viết mã thuộc tính, phương thức...
· Biên dịch ứng dụng để tạo file DLL trong thư mục <Application Folder>\bin\Debug
Ví dụ tạo Custom Control không giao diện:
File/ New Project, Class Library, tạo dự án Card_Validator chứa lớp CardValidator.cs
public class CardValidator {
public string Name {get; set; }
public string CardNo { get; set; }
public CardValidator(string Name, string CardNo) {
this.Name = Name;
this.CardNo = CardNo;
}
public bool Validate() {
int CardLength = CardNo.Length;
if (CardLength == 5) return true; //if (CardLength == 16)
return true;
return false;
}
}
Ví dụ sử dụng custom controls không giao diện
· File/ New/ Project, chọn Windows Forms Application
· Để thêm một tham chiếu đến lớp CardValidator, 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 lớp thư viện Card_Validator.dll
· Tạo form, thiết kế như hình sau, bổ sung mã using Card_Validator, 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.CardNo;
else {
this.label3.Text = " Invalid Card Number";
MessageBox.Show("Invalid Card Number");
}
User Controls (Composite controls)
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 thừa kế lớp System.Windows.Forms.UserControl.
Tạo User Controls
· 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, property cho control.
· Biên dịch ứng dụng, sẽ tạo tập tin DLL trong thư mục <Application Folder>\bin\Debug
Sử dụng user control:
· Tạo dự án winform
· 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 DLL của user control, OK
Ví dụ Composite controls
· File/ New Project, Windows Form Control Library, gõ tên dự án là Digital_Clock
· Add/ User Control với tên DigitalClock, 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ở hàm đá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
Ví dụ sử dụng User Controls (Composite controls)
· 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: