Nội Dung
Graphical User Interface (GUI)
Event Driven Programming
Ứng dụng Windows Form dùng C#
Khuôn mẫu của ứng dụng Windows Form chuẩn
Cách tạo ứng dụng Windows Form trong VS 2005
Tạo ứng dụng Form
Chỉnh sửa form
Thêm component vào form
Viết phần xử lý cơ bản
48 trang |
Chia sẻ: phuongt97 | Lượt xem: 371 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Lập trình Windows Form - Nguyễn Văn Phong, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Windows FormNguyễn Văn Phong1Nội DungGraphical User Interface (GUI)Event Driven ProgrammingỨng dụng Windows Form dùng C#Khuôn mẫu của ứng dụng Windows Form chuẩnCách tạo ứng dụng Windows Form trong VS 2005Tạo ứng dụng FormChỉnh sửa formThêm component vào formViết phần xử lý cơ bản2GUICommand line interface: CLIText user interface: TUITương tác qua keyboardThực thi tuần tự GUI dựa trên textMức độ tương tác cao hơn3GUITương tác qua giao diện đồ họa độ phân giải caoGraphical User Interface: GUIĐa số các hệ OS hiện đại đều dùng GUICho phép user dễ dàng thao tác4GUIsChương trình hiện đại đều dùng GUIGraphical: text, window, menu, buttonUser: người sử dụng chương trìnhInterface: cách tương tác chương trìnhThành phần đồ họa điển hìnhWindow: một vùng bên trong màn hình chínhMenu: liệt kê những chức năngButton: nút lệnh cho phép click vàoTextBox: cho phép user nhập dữ liệu text5GUI ApplicationWindows Form là nền tảng GUI cho ứng dụng desktop(Ngược với Web Form ứng dụng cho Web)Single Document Interface (SDI)Multiple Document Interface (MDI)Các namespace chứa các lớp hỗ trợ GUI trong .NETSystem.Windows.Forms: Chứa GUI components/controls và formSystem.Drawing: Chức năng liên quan đến tô vẽ cho thành phần GUICung cấp chức năng truy cập đến GDI+ cơ bản6Event- Driven Programming Danh sách các lệnh thực thi tuần tựViệc kế tiếp xảy ra chính là lệnh tiếp theo trong danh sáchChương trình được thực thi bởi máy tínhCác đối tượng có thể kích hoạt sự kiện và các đối tượng khác phản ứng với những sự kiện đóViệc kế tiếp xảy ra phụ thuộc vào sự kiện kế tiếpLuồng chương trình được điều kiển bở sự tương tác User-ComputerCách truyền thốngEvent-Driven Programming7Event-Driven ProgrammingChương trình GUI thường dùng Event-Drive ProgrammingChương trình chờ cho event xuất hiện và xử lý Ví dụ sự kiện:Firing an event: khi đối tượng khởi tạo sự kiệnListener: đối tượng chờ cho sự kiện xuất hiệnEvent handler: phương thức phản ứng lại sự kiện8Event-Driven ProgrammingTrong C#, Event-Driven Programming được thực thi bởi event (xem slide Delegate & Event) ABCEvent EpublishsubscribeThông báoĐăng ký event EA phát sinh event EDelegate cho EHandler B cho EHandler C cho E9Event-Driven ProgrammingMinh họa xử lý trong formClickUser nhập text vào texbox -> click Button để add chuỗi nhập vào listboxLấy dữ liệu từ textboxAdd vào listboxinvokeButton đưa ra sự kiện clickForm có event handler cho click của button10Event-Driven ProgrammingGUI-based eventsMouse moveMouse clickMouse double-clickKey pressButton clickMenu selectionChange in focusWindow activationEventDanh sách event cho Form11Windows Forms Application12Windows Form AppSử dụng GUI làm nền tảngEvent-driven programming cho các đối tượng trên formỨng dụng dựa trên một “form” chứa các thành phầnMenuToolbarStatusBarTextBox, Label, ButtonLớp cơ sở cho các form của ứng dụng là FormSystem.Windows.Forms. FormNamespaceClass13Minh họa WinForm App14GUI Components/ControlsComponents/controls được tổ chức vào các lớp thừa kế, cho phép dễ dàng chia sẻ các thuộc tínhMỗi component/control định nghĩa cácThuộc tínhPhương thứcSự kiệnCách dễ nhất là sử dụng VS .NET Toolbox để thêm control và component vào form15Components and Controls cho Windows FormToolbox của Visual Studio .NET 200516UD WinForm đơn giảnLớp Form cơ sởControl kiểu LabelChạy ứng dụng với Form1 làm form chínhThiết kế form & controlAdd control vào formForm1.cs17Các bước tạo UD WinForm cơ bảnTạo lớp kế thừa từ lớp Form cơ sởBổ sung các control vào form Thêm các label, menu, button, textboxThiết kế layout cho form (bố trí control)Hiệu chỉnh kích thước, trình bày, giao diện choformControl chứa trong formViết các xử lý cho các control trên form và các xử lý khácHiển thị FormThông qua lớp Application gọi phương thức RunNên sử dụng IDE hỗ trợ thiết kế GUI!18Form và controlTất cả các thành phần trên form đều là đối tượngCác control là những lớp của FCLSystem.Windows.Forms.LabelSystem.Windows.Forms.TextBoxSystem.Windows.Forms.ButtonCác control là instance của các lớp trên.objectobjectobjectobjectobjectobject19Các thuộc tính của FormPropertyDescriptionDefaultNameTên của form sử dụng trong projectForm1,Form2AcceptButtonThiết lập button là click khi user nhấn EnterCancelButtonThiết lập button là click khi user nhấn EscControlBoxHiển thị control box trong caption barTrueFormBorderStyleBiên của form: none, single, 3D, sizableSizableStartPositionXác định vị trí xuất hiện của form trên màn hìnhWindowsDefaultLocationTextNội dung hiển thị trên title barForm1, Form2, Form3FontFont cho form và mặc định cho các controlMethodDescriptionCloseĐóng form và free resourceHideẩn formShowHiển thị form đang ẩnEventDescriptionLoadXuất hiện trước khi form show20Minh họa tạo ứng dụng Windows Form từ Visual Studio .NET21Tạo WinForm App từ VS. 2005Hỗ trợ WYSISYG cho GUI designCơ chế xử lý sự kiện code behindNhanh chóng & dễ dàng tạo UD Windows Form22Tạo WinForm App từ VS. 2005 (2)Tạo project: Windows App23Tạo WinForm App từ VS. 2005 (3)Windows App doVS.2005 khởi tạo12341: form ứng dụng2: control toolbox3: Solution Explorer4: Form properties24Tạo WinForm App từ VS. 2005 (4)Màn hình thiết kế Form, cho phép người lập trình kéo thả những control vào trong formTất cả những code được tạo tự động dựa trên sự thao tác thiết kế form của userRút ngắn nhiều thời gian cho việc thao tác giao diện formTính năng trực quan WYSIWYGCó được ứng dụng form mặc dù chưa viết code!25Toolbox ToolboxKéo thả control lên formCode được phát sinh tự động26Giao diện thiết kế formForm chính của ứng dụngChưa có control27Cửa sổ propertiesCửa sổ properties của form28Cửa sổ propertiesTên của formchính là tênlớpThay đổi titleDễ dàng hiệu chỉnh form thông qua cửa sổ Properties29Thêm control vào formKéo thả control vào form30Code của phần designPhần code thiết kế Form1 được tạo tự độngKhai báo các đối tượng control trên Form1Chứa code khởi tạo controlForm1.Designer.cs31Code của phần designTạo đối tượngLần lượt khai báo các thuộc tính cho các controlInitializeComponent32Code của phần designInitializeComponentĐưa các control vào danh sách control của Form133Sửa thuộc tính của controlĐổi tên thành txtNum1Thay đổi các giá trị qua cửa sổ properties -> VS tự cập nhật code34Phần xử lýKhi click vào Add -> cộng 2 giá trị và xuất kết quảThực hiệnButton Add cung cấp sự kiện clickForm sẽ được cảnh báo khi Add được clickForm sẽ lấy dữ liệu từ 2 textbox và cộng -> kết quảCơ chế eventButton đưa ra sự kiện click: đối tượng publishForm quan tâm đến sự kiện click của button, Form có sẽ phần xử lý ngay khi button click.Phần xử lý của form gọi là Event HandlerForm đóng vai trò là lớp subscribe35Khai báo event handlerKích đúp vào button Add trên màn hình thiết kế cho phép tạo event handler cho sự kiện này.DClickCửa sổ quản lý event của BtnAddevent36Khai báo event handlerEvent handler cho button AddCùng signature method với System.EventHandler37Khai báo event handlerInitializeComponentSự kiện clickTrình xử lý được gọi khi event xảy raDelegate chuẩn cho event handler38Viết phần xử lýPhần xử lý của Form1 khi button clickLấy giá trị của 2 textbox, cộng kết quả và xuất ra MeesageBox39Phương thức của lớp FormCác hành động có thể thực hiện trên formActivate: cho form nhận focusClose: đóng và giải phóng resourceHide: ẩn formRefresh: tô vẽ lạiShow: cho form show ra màn hình (modeless) và activateShowDialog: hiển thị dạng modalFind Dialog chính là dạng modelessFont dialog dạng modal40Event của FormTạo xử lý cho eventTrong cửa sổ propertiesChọn biểu tượng eventKích đúp vào tên eventEvent thường dùngLoad: xuất hiện trước khi form xuất hiện lần đầu tiênClosing: xuất hiện khi form đang chuẩn bị đóngClosed: xuất hiện khi form đã đóngResize: xuất hiện sau khi user resize formClick: xuất hiện khi user click lên nền formKeyPress: xuất hiện khi form có focus và user nhấn phímTên eventTrình xử lý nếu có41Event của FormVí dụ chương trình sẽ hỏi user xác nhận trước khi đóng ứng dụng.Kích đúp vào item FormClosing trong cửa sổ eventHàm Form1_FormClosing được tạo và gắn với sự kiện FormClosingViết code cho event handler Form1_FormClosing this.FormClosing += new FormClosingEventHandler( this.Form1_FormClosing );42Kiểm tra dữ liệu nhậpNếu user nhập vào chuỗi thì chương trình trên sẽ lỗi!Khắc phục: Cảnh báo user nhập không đúng dạngXóa những ký tự không hợp lệ đó Sử dụng control ErrorProvider để cảnh báo lỗi khi user nhập không đúngTrong Design View: kéo ErrorProvider từ ToolBox/Component vào formChặn xử lý sự kiện TextChanged khi user nhập liệu vào textboxNếu nhập sai thiết lập lỗi cho control ErrorProvider cảnh báo!43Bổ sung ErrorProviderKéo thả ErrorProvider vào design view44Xử lý sự kiện TextChanged của textBoxPhần kiểm tra45ErrorProvider cảnh báoIcon hiển thị lỗiDi chuyển chuột vào icon, tooltip xuất hiện46Tóm tắtTổng quan lập trình GUICơ chế Event Driven ProgrammingỨng dụng Windows Form cơ bảnSử dụng Visual Studio .NET 2005 tạo ứng dụng WFWindows Form ApplicationSử dụng control: text, label, buttonXử lý sự kiện cho button, formSử dụng ErrorProvider47Q&A48
Các file đính kèm theo tài liệu này:
- bai_giang_lap_trinh_windows_form_nguyen_van_phong.ppt