Thông tin tài liệu
Khoa CNTT CNPM LẬP TRÌNH GIAO DIỆN WINFORM Phạm Hồng Hải LTUDQL - Khoa CNTT CNPM NỘI DUNG ¨ Lập trình giao diện GUI ¨ Lập trình Winform Visual Studio ă Cu trỳc ng dng Winform ă Delegate & Event ă Lp trỡnh x lý s kin ¨ Hỏi đáp Phạm Hoàng Hải LTUDQL - Khoa CNTT CNPM LẬP TRÌNH GIAO DIỆN GUI CÁC LOẠI GIAO DIN X Lí ă Command Line ă c trng • Nhập xuất - Keyboard (Line – by – Line) • MS-DOS(Win 95/98/Me) • Command Prompt(Win2k, NT,XP) Phạm Hoàng Hải LTUDQL - Khoa CNTT CNPM LẬP TRÌNH GIAO DIỆN GUI CÁC LOẠI GIAO DIỆN XỬ LÝ ¨ Text User Interface ¨ Đặc trưng • Tương tác nhập xuất dễ dàng (Mouse – Keyboard) • Mọi thứ hình Text • Tiền đề lập trình với GUI Phạm Hồng Hải LTUDQL - Khoa CNTT CNPM LẬP TRÌNH GIAO DIỆN GUI CÁC LOẠI GIAO DIN X Lí ă Graphic User Interface ă c trưng • Giao diện đồ họa với độ phân giải cao • Cho phép User tương tác dễ dàng • Input/ Output đa dạng Phạm Hoàng Hải LTUDQL - Khoa CNTT CNPM LẬP TRÌNH GIAO DIỆN GUI GUI APPLICATION ă Hu ht cỏc HH (Windows, MAC, Linux,)u s dụng GUI • Graphic: Winform, Textbox, Menu, Button, Checkbox… • User: Người sử dụng • Interface: Cách thức tương tác với chương trình Phạm Hồng Hải LTUDQL - Khoa CNTT CNPM LẬP TRÌNH GIAO DIỆN GUI GUI APPLICATION ¨ Winform tảng cho phát triển ứng dụng Windows & Mobile • Single Document Interface • Multiple Document Interface Phạm Hoàng Hải LTUDQL - Khoa CNTT CNPM LP TRèNH WINFORM VISUAL STUDIO NET ă VS.NET 2003/2005/2008/2010 • Là IDE Microsoft • Hỗ trợ nhiều ngụn ng Net (C#, C++, VB.Net, Java) ă D dng to ng dng Winform ă H tr WYSIWYG cho thit kế giao diện GUI Phạm Hoàng Hải LTUDQL - Khoa CNTT CNPM LẬP TRÌNH WINFORM VISUAL STUDIO NET ¨ VS.NET 2003/2005/2008/2010 • Là IDE Microsoft • Hỗ tr nhiu ngụn ng Net (C#, C++, VB.Net, Java) ă Netbean/Eclipse (Java) ă D dng to ng dng Winform ă Hỗ trợ WYSIWYG cho thiết kế giao diện GUI Phạm Hoàng Hải LTUDQL - Khoa CNTT CNPM LẬP TRèNH WINFORM VISUAL STUDIO NET ă C# c phỏt trin bi nhúm Anders Hejlsberg & Scott Wiltamuth ă Da trờn c s C, C++, Java ă c trng ã Hng đối tượng • Lập trình trực quan • Hoạt động theo chế kiện Phạm Hoàng Hải LTUDQL - 10 Khoa CNTT CNPM CẤU TRÚC ỨNG DỤNG WINFORM Nếu không dùng công cụ hỗ trợ IDE, lập trình Winform? Phạm Hồng Hải LTUDQL - 27 Khoa CNTT CNPM CẤU TRÚC ỨNG DỤNG WINFORM ¨ Gọi Winform từ ứng dụng Console Application Lớp Form sở Form1.cs Control kiểu Label Thiết kế form & control Add control vào form Chạy ứng dụng với Form1 làm form Phạm Hồng Hải LTUDQL - 28 Khoa CNTT CNPM DELEGATE - EVENT Delegate gì? Phạm Hoàng Hải LTUDQL - 29 Khoa CNTT CNPM DELEGATE - EVENT ă Delegate l mt khỏi nim C#, tng t nh class ă Delegate cú th to cỏc instance ă Delegate cú th tr n mt hay nhiều phương thức có cúng đối số (Số lượng đối số kiểu đối số giống nhau) Phạm Hoàng Hải LTUDQL - 30 Khoa CNTT CNPM DELEGATE - EVENT ¨ Delegate khái niệm C#, tương tự nh class ă Delegate cú th to cỏc instance ¨ Delegate trỏ đến hay nhiều phương thức có cúng đối số (Số lượng đối số kiu i s ging nhau) ă Delegate l c s event (nguyên lý lập trình giao diện Winform) Phạm Hoàng Hải LTUDQL - 31 Khoa CNTT CNPM DELEGATE EVENT KHAI BO DELEGATE ă Delegate cú th c nh ngha Namespace hay Class ă nh ngha Delegate: public delegate void MyDelegate1(int x, int y); public delegate string MyDelegate2(float f); ă Cỏch nh ngha, ging nh phương thức muốn trỏ đến, có từ khóa delegate đầu Phạm Hoàng Hải LTUDQL - 32 Khoa CNTT CNPM DELEGATE EVENT S DNG DELEGATE ă nh nghĩa Delegate public delegate void MyDelegate1(int x, int y); public delegate string MyDelegate2(float f); public void Method1(int a, int b) { // body of method } public static string Method2(float f) { // body of method } ă To instance Delegate MyDelegate1 d1 = new MyDelegate1( Method1 ); MyDelegate2 d2 = new MyDelegate2( Method2 ); Phạm Hoàng Hải LTUDQL - 33 Khoa CNTT CNPM DELEGATE – EVENT VÍ D DELEGATE ă nh ngha Delegate public delegate void MyDelegate1(int x, int y); public delegate string MyDelegate2(float f); public void Method1(int a, int b) { // body of method } public static string Method2(float f) { // body of method } ă To instance ca Delegate MyDelegate1 d1 = new MyDelegate1( Method1 ); MyDelegate2 d2 = new MyDelegate2( Method2 ); Phạm Hoàng Hải LTUDQL - 34 Khoa CNTT CNPM DELEGATE – EVENT VÍ DỤ DELEGATE No return class Test ¨ { Định nghĩa Delegate public delegate void MyDelegate3(int n1, int n2); static void Print(int x, int y) { Console.WriteLine("x={0}, y={1}", x, y); } static void Sum(int a, int b) { Console.WriteLine("Tong={0}", a + b); } static void Main(string[] args) { MyDelegate3 mdca = newDelegate MyDelegate3(Print); ă To instance md += new MyDelegate3(Sum); md(5, 10); md -= new MyDelegate3(Print); md(50, 60); x=5, y=10 Tong=15 Tong=110 } } Phạm Hoàng Hải LTUDQL - 35 Khoa CNTT CNPM DELEGATE - EVENT Event gì? Trong Net framework có lớp Button! Viết code tạo form, có button • btnX1 – Vị trí (10,10) có hàm xử lý btnClick1 • btnX2 – Vị trí (10,50) có hàm xử lý btnClick2 Phạm Hồng Hải LTUDQL - 36 Khoa CNTT CNPM DELEGATE - EVENT ă Event l s kin xy chy chng trỡnh (Click lờn button, chn trờn Combobox) ă L chế thơng điệp lập trình giao diện, để thông báo cho lớp khác biết lp phỏt sinh s kin ă Vớ d: Button Add Form, kiện click xảy Form thực lấy liệu từ TextBox đưa vào ListBox… Phạm Hoàng Hải LTUDQL - 37 Khoa CNTT CNPM DELEGATE - EVENT • Khai báo delegate xử lý kiện public delegate void HandlerName(object obj, EventArgs arg); • Khai báo event public event HandlerName OnEventName; • Các lớp muốn xử lý kiện OnEventName phát sinh phải thực thi event handler Phạm Hoàng Hải LTUDQL - 38 Khoa CNTT CNPM DELEGATE - EVENT Form1.Designer.cs Khai báo đối tượng control Form1 Form1 cs Khai báo đối tượng control Form1 Phạm Hoàng Hải LTUDQL - 39 Khoa CNTT CNPM HI P ă Bài tập 1: Xây dựng ứng dụng Calculator Phạm Hoàng Hải LTUDQL - 40 Khoa CNTT CNPM HỎI ĐÁP Phạm Hoàng Hải LTUDQL - 41
Ngày đăng: 09/04/2023, 06:27
Xem thêm: