Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 41 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
41
Dung lượng
5,93 MB
Nội dung
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