Bài giảng Lập trình Windows Nâng cao - Buổi 2 - Bùi Công Danh

Ưu điểm Công nghệ COM Giảm độ phức tạp của toàn bộ phần mềm. Cho phép phát triển các module phân tán giữa nhiều nhóm, phòng ban… Tăng khả năng bảo trì phần mềm. COM là công nghệ của Microsoft, nó tạo nên các thành phần giao tiếp với nhau trong ứng dụng phần mềm. COM tạo ra những thành phần có thể tái sử dụng, và liên kết các thành phần với nhau để tạo nên ứng dụng

pdf28 trang | Chia sẻ: candy98 | Lượt xem: 439 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Lập trình Windows Nâng cao - Buổi 2 - Bùi Công Danh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Thiết kế các Controls dùng công nghệ COM 1. Công nghệ COM (Component Object Model) là gì? 2. Vì sao nên sử dụng COM trong lập trình ứng dụng? 1 29/08/2016 Lập trình windows nâng cao Ưu điểm Công nghệ COM Giảm độ phức tạp của toàn bộ phần mềm. Cho phép phát triển các module phân tán giữa nhiều nhóm, phòng ban Tăng khả năng bảo trì phần mềm. 2 29/08/2016 Lập trình windows nâng cao KHÁI NIỆM COM là công nghệ của Microsoft, nó tạo nên các thành phần giao tiếp với nhau trong ứng dụng phần mềm. COM tạo ra những thành phần có thể tái sử dụng, và liên kết các thành phần với nhau để tạo nên ứng dụng. 3 29/08/2016 Lập trình windows nâng cao THÀNH PHẦN CỦA COM Ứ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). 4 29/08/2016 Lập trình windows nâng cao Components Khái niệm: Component là một thành phần khả thi nhị phân xây dựng từ công cụ .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. 5 29/08/2016 Lập trình windows nâng cao Components Phân loại: Có 2 loại Thành phần xây dựng sẵn của .NET Thành phần do người dùng định nghĩa. 6 29/08/2016 Lập trình windows nâng cao 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), 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, 7 29/08/2016 Lập trình windows nâng cao Thành phần xây dựng sẵn Tham chiếu đến thành phần xây dựng sẵn: 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 . 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. 8 29/08/2016 Lập trình windows nâng cao Thành phần xây dựng sẵn Ví dụ thành phần xây dựng sẵn: 1. Kích phải trên tab trên Toolbox, chọn Choose Items 2. Chọn điểu khiển Browse Button ở tab COM Components 3. Kích nút OK, biểu tượng Browse Button sẽ xuất hiện trên Toolbox. 4. Kéo rê điều khiển Browse Button 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 9 29/08/2016 Lập trình windows nâng cao 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: 1. Controls thừa kế từ Control đã có 2. Custom controls: Có 2 loại a. Không có giao diện b. Có giao diện 10 29/08/2016 Lập trình windows nâng cao 1. Controls thừa kế từ control đã có 1. File/ New Project, ClassLibrary 2. Viết mã kế thừa lớp điều khiển đã có: 3. Ví dụ: public class CustomControl1 : System.Windows.Forms.TextBox 4. Viết mã bổ sung hàm, sự kiện, thuộc tính cho lớp 5. Biên dịch để tạo file DLL trong thư mục \bin\Debug 11 29/08/2016 Lập trình windows nâng cao Tạo Control NumericTextBox chỉ chấp nhận nhập giá trị số 1. File/New Project, Windows Forms Control Library 2. Kích phải trên dự án, chọn Add/ User Control 3. Thay mã thừa kế: public partial class NumericTextBox : TextBox 4. Thêm mã sau: 12 29/08/2016 Lập trình windows nâng cao Tạo Control NumericTextBox chỉ chấp nhận nhập giá trị số 13 29/08/2016 Lập trình windows nâng cao public partial class NumericTextBox : TextBox { public NumericTextBox() { InitializeComponent(); } private void NumericTextBox_KeyPress(object sender, KeyPressEventArgs e) { if (!char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar)) { e.Handled = true; } } } Tạo ứng dụng sử dụng control 1. File/ New Project, Windows Forms Application 2. 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 3. Tạo form, đặt điều khiển NumericTextBox vào form 4. Chạy ứng dụng 14 29/08/2016 Lập trình windows nâng cao Bài tập Controls thừa kế từ control đã có 1. Tạo control Upper TextBox chỉ hiển thị chữ hoa. 2. Tạo control DataGridView có dòng chẵn 1 màu dòng lẻ 1 màu. 15 29/08/2016 Lập trình windows nâng cao 2. Custom controls Custom controls có 2 loại: Có giao diện Không có giao diện 16 29/08/2016 Lập trình windows nâng cao Tạo Custom Control 1. File/ New Project, Class Library (Không có giao diện) 2. Kích phải trên Project, chọn Add/ Class: public class TenClass 3. Viết mã thuộc tính, phương thức... 4. Biên dịch ứng dụng để tạo file DLL trong thư mục \bin\Debug 17 29/08/2016 Lập trình windows nâng cao Tạo Custom Control không giao diện File/ New Project, Class Library, tạo Project NT_Validator chứa lớp NTValidator.cs 18 29/08/2016 Lập trình windows nâng cao public class NTValidator { public int Number { get; set; } public NTValidator(int pNumber) { this. Number = pNumber; } public bool Validate() { // Kiem tra NT } } Sử dụng custom controls không giao diện 1. File/ New/ Project, chọn Windows Forms Application 2. Để thêm một tham chiếu đến lớp HopDen, 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 HopDen.dll 3. Tạo một sự kiện thực thi lệnh sau: 19 29/08/2016 Lập trình windows nâng cao Sử dụng custom controls không giao diện NTValidator Validator = new NTValidator(12); if (Validator.Validate()) this.lblThongBao.Text = “Nguyen to"; else { this.lblThongBao.Text = " Khong Nguyen to"; } 20 29/08/2016 Lập trình windows nâng cao Bài tập sử dụng custom controls không giao diện Sử dụng custom controls không giao diện thực hiện các công việc sau: (A1) 1. Kiểm tra kết nối CSDL. 2. Hỗ trợ mở kết nối. 3. Hỗ trợ đóng kết nối. 21 29/08/2016 Lập trình windows nâng cao 3. Custom controls có giao diện (User Controls) 1. Có thể kết hợp nhiều Control để tạo một Control mới. Control mới hoạt động như một Control đơn. 2. Tất cả user control thừa kế lớp System.Windows.Forms.UserControl 22 29/08/2016 Lập trình windows nâng cao Tạo User Controls 1. File/ New Project, Windows Forms Control Library 2. Thiết kế giao diện người dùng của user control 3. Viết mã để thêm phương thức, property cho control. 4. Biên dịch ứng dụng, sẽ tạo tập tin DLL trong thư mục \bin\Debug 23 29/08/2016 Lập trình windows nâng cao Sử dụng user control 1. Tạo Project winform 2. 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 24 29/08/2016 Lập trình windows nâng cao Ví dụ user control 1. File/ New Project, Windows Form Control Library, gõ tên Project là Digital_Clock 2. 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 3. Kích đúp vào điều khiển Timer để mở hàm sự kiện Tick, bổ sung mã sau: 25 29/08/2016 Lập trình windows nâng cao Ví dụ user control label1.Text = DateTime.Now.ToString(); 4. Biên dịch ứng dụng: Build/Build Solution 26 29/08/2016 Lập trình windows nâng cao Ví dụ sử dụng User Controls (Composite controls) 1. File/ New Project, Windows Forms Application 2. 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 3. Tạo form, bổ sung Control DigitalClock vào form 4. Chạy ứng dụng 27 29/08/2016 Lập trình windows nâng cao BÀI TẬP User control 28 29/08/2016 Lập trình windows nâng cao Tạo User control có giao diện như sau: Yêu cầu: Kết hợp bài tập A1,A2 thực hiện công việc đăng nhập vào CSDL khi có table NguoiDung(user,pass) tương ứng.