chapter 1 1 vi
TRANSCRIPT
11
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
22
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Chương 1:Giới Thiệu Lập Trình Windows
Forms Sử Dụng C#
33
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Giới Thiệu
• Lịch sử C#
• Ứng dụng Windows Forms
• Vòng lặp sự kiện Windows Forms
• Microsoft Visual Studio
• Tổng kết
44
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Lịch sử C#• C# được phát triển bởi nhóm của Anders
Hejlsberg và Scott Wiltamuth tại Microsoft
• C# là ngôn ngữ lập trình hướng đối tượng và được cung cấp các thư viện xây dựng sẵn
Cho phép lập trình viên phát triển ứng dụng nhanh chóng
• C# và Visual Basic chia sẻ thư viện của Framework Class Library (FCL)
• C# thích hợp cho các yêu cầu phát triển ứng dụng quản lý
Đặc biệt với các ứng dụng trên nền Windows và Web
55
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Đặc điểm của C#
• C# là ngôn ngữ hướng sự kiện và hỗ trợ lập trình trực quan
Chương trình được xây dựng sử dụng môi trường lập trình tích hợp (Integrated Development Environment - IDE)
• C# được chuẩn hóa bởi ECMA (European Computer Manufacturers Association) International
66
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Lý do sử dụng C# ?• C# đơn giản
Loại bỏ các vấn đề của C++, Java (như: macro, template...)
• C# là ngôn ngữ hiện đại
• C# là ngôn ngữ lập trình hướng đối tượng
Hỗ trợ tính bao đóng, kế thừa và tính đa hình
• C# mạnh mẽ và linh hoạt
Sử dụng phát triển nhiều loại ứng dụng (xử lý văn bản, hình ảnh, bảng tính phục vụ cho quản lý….)
77
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Ứng dụng Windows Forms
• Windows Forms là cách cơ bản để cung cấp các thành phần giao diện (GUI components) cho môi trường .NET Framework
• Windows Forms được xây dựng trên thư viện Windows API
• Windows Forms cơ bản bao gồm
Một Form là khung dùng hiển thị thông tin đến người dùng
Các Control được đặt trong form và được lập trình để đáp ứng sự kiện
88
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Kiến trúc ứng dụng Windows Forms
99
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Các thành phần Windows Forms
• Form Một cửa sổ hiển thị thông tin đến người dùng
Kế thừa từ lớp Form trong namespace System.Windows.Forms
• Control Định nghĩa các chức năng của form
• Component Các control không hiển thị cung cấp thêm nhiều chức năng
cho ứng dụng các windows forms
• Dialog box Sử dụng dialog box để giao tiếp với người dùng để thu thập
thông tin
1010
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Ví dụ Windows Form
1111
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Cách phát triển Windows Forms
• Bốn bước:
Xây dựng một class kế thừa lớp Form
Tạo một form bằng cách khởi tạo một thực thể của class đó
• Cấu hình form bằng cách thiết lập các thuộc tính tương ứng
Thêm control vào form
• Xử lý sự kiện nếu cần thiết
Hiển thị form
1212
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Kh i t o và ở ạc u hình ấ
Form
Hi n thể ị
K th a l p Formế ừ ớ
Biên d chị : csc /r:System.Windows.Forms.dll /t:winexe FormApp.cs
1313
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Tùy biến Form – Caption Bar
1414
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Tùy biến Form – Location
Setting position of Form
1515
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Thêm Control vào Form
Kh i t o Controlở ạ
1616
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Thêm control vào Form
1717
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Hệ tọa độ trong Form
1818
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Windows Forms Layout
• Định nghĩa Layout Cách các control được sắp xếp và co giãn khi hiển thị trên form
• Scale Control Sử dụng thuộc tính AutoScaleMode để xác định cơ chế co giãn tự
động của các control
• Sắp xếp các Control Anchoring
Docking
Splitting
Grouping
• Tùy biến Layout
Tìm hi u ể ởch ng sauươ
1919
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
AutoScaleMode Property
• Cho biết cơ chế co giãn tự động của control
• Co giãn theo chế độ Font nếu:
Control hoặc form co giãn theo kích thước của font trong hệ điều hành
Kích thước tuyệt đối của control hoặc form không có ảnh hưởng
• Co giãn theo DPI (dots per inch) nếu:
Kích cỡ của control hay form tương đối so với màn hình
Ví dụ, hiển thị một chart hay hình ảnh sao cho chúng luôn chiếm một phần màn hình cố định
2020
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Anchoring• Khoảng cách giữa control và form được giữ cố
định
Cơ chế này gọi là anchoring
Scale
Top, Left
2121
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Giá trị AnchorStyles
enum AnchorStyles {
None,
Left, // default
Top, // default
Bottom,
Right
}
2222
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Docking
• Docking là cách cố định vị trí của control
2323
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Giá trị DockStyle
enum DockStyle {
None, // default
Left,
Top,
Right,
Bottom,
Fill
}
2424
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Sự kiện
• Một sự kiện là một thông điệp(message) được gởi đến ứng dụng khi có một điều gì xảy ra
Thông điệp này chứa thông tin về sự kiện
• Một phương thức có cùng chữ ký với sự kiện có thể xử lý sự kiện đó
Nghĩa là phương thức này được thực hiện khi sự kiện xảy ra
• Control và form có thể phát sinh nhiều loại sự kiện đáp ứng cho người dùng
2525
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Vòng lặp sự kiện Windows Forms
Anything happen
Display Form
Kick off Event
Yes
No Event Loop
2626
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Thêm Control với sự kiện
2727
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Button is clicked
2828
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
2929
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Phân loại Windows Forms Controls theo chức năng
3030
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
IDE
• IDE (Integrated Development Environment) sẽ giúp lập trình viên xây dựng ứng dụng:
Nhanh chóng
Nhiều chức năng
Giảm tối đa lỗi
Rapid Application Development (RAD)
3131
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Microsoft Visual Studio• IDE được xây dựng bởi Microsoft
3232
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Các cửa sổ thông dụng
Toolbox
Form DesignProperties
3333
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Tổng kết
• C# là ngôn ngữ mới
• C# được sử dụng phát triên các ứng dụng mạnh mẽ
• Các thành phần của Windows Forms
• Sử dụng Visual Studio để giảm chi phí và lỗi
3434
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Delegate• Sometimes, it is beneficial for objects to
pass methods as arguments to other methods
• C# does not allow the passing of method references directly as arguments to other methods
• C# provide delegates, which are classes that encapsulate sets of references to methods
A delegate object that contains method references can be passed to another method
3535
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Delegate (cont.)
• A delegate that contains a single method is known as a singlecast delegate and is created or derived from class Delegate
• Delegates that contain multiple methods are multicast delegates and are created or derived from class MulticastDelegate
3636
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
encapsulate methods that take a string as an argument and returns void
Assign delegate to method
3737
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
delegate as parameter of method
3838
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Tek Ngành lập trình - CSDL
Delegate for more than one method