LẬP TRÌNH WINDOWS FORM VỚI CÁC CONTROL NÂNG CAO (Các control trình bày dữ liệu dưới dạng danh sách)

Similar documents
Khối: Cao Đẳng nghề và Trung Cấp Năm 2009

BÀI TẬP THỰC HÀNH LẬP TRÌNH WINDOWS C#

HƯỚNG DẪN SỬ DỤNG HỆ THỐNG CẬP NHẬT CHỨNG THƯ SỐ HOTLINE:

HƯỚNG DẪN CÀI ĐẶT PHẦN MỀM DIỆT VIRUS AVIRA

HƯỚNG DẪN SỬ DỤNG PLESK PANEL

BÀI 1: VBA LÀ GÌ? TẠO MACRO, ỨNG DỤNG CÁC HÀM TỰ TẠO (UDF), CÀI ĐẶT ADD-INS VBA là gì?

Tình huống 1: PPPoE với Username và Password

Hướng dẫn cài đặt FPT

Chương 5. Network Layer. Phần 1 - Địa chỉ IPv4. Tài liệu : Forouzan, Data Communication and Networking

Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin và TT, ĐH Cần Thơ

Cụ thể những công việc mà AndroidManifest.xml thực hiện: - Đặt tên cho Java package của ứng dụng.

Tạo Project với MPLAB

Tài liệu hướng dẫn: Stored Procedure

Bài Thực hành Asp.Net - Buổi 1 - Trang: 1

HƯỚNG DẪN CÁCH SỬ DỤNG WINDOWS MOVIE MAKER

Internet Protocol. Bởi: Phạm Nguyễn Bảo Nguyên

HƯỚNG DẪN SỬ DỤNG ĐẦU GHI H.264 DVR VISION VS (4CH - 8CH - 16CH)

Cài đặt và cấu hình StarWind iscsi trên Windows. iscsi SAN là gì?

STACK và QUEUE. Lấy STACK

Chương 5. Network Layer 19/09/2016 1

Giáo trình này được biên dịch theo sách hướng dẫn của Sun Light. Vì là hướng dẫn kỹ thuật, trong này những thuật ngữ kỹ thuật bằng tiếng Anh tôi chỉ

TÀI LIỆU THỰC HÀNH MÔN CƠ SỞ DỮ LIỆU NÂNG CAO

SIMULATE AND CONTROL ROBOT

GV: Phạm Đình Sắc or

HƢỚNG DẪN TRIỂN KHAI KASPERSKY - MOBILE DEVICE MANAGEMENT

Bộ môn MMT&TT, Khoa Công Nghệ Thông Tin và TT, ĐH Cần Thơ

Khoa KH & KTMT Bộ môn Kỹ Thuật Máy Tính

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG HOSTING PLESK PANEL

Bài tập lớn số 1. Giả lập bộ định thời

I. Hướng Dẫn Đăng Nhập:

Entity Framework (EF)

CẤU TRÚC DỮ LIỆU NÂNG CAO

TỔNG QUAN VỀ.NET VÀ C#

Chương 7. Application Layer. Tài liệu : Forouzan, Data Communication and Networking

Bài tập căn bản Visual Basic.Net Vòng lặp. txtn. txtketqua. btntinh. txtn. txtketqua. btntinh. Trang 1

SIEMENS INDUSTRIAL NETWORKS

HƯỚNG DẪN SỬ DỤNG DỊCH VỤ CDN

Nội dung chính của chương. Các công nghệ đĩa cứng Cấu tạo vật lý của đĩa cứng Cấu tạo logic của đĩa cứng Cài đặt đĩa cứng như thế nào?

ĐỌC, GHI XML VỚI C# TRONG ADO.NET --- SỬ DỤNG VISUAL STUDIO

Lab01: M V C Lưu ý: Để thực hành, các bạn phải cài Visual Studio 2013 trở lên mới hỗ trợ MVC5.

Online Appointment System will work better with below conditions/ Hệ thống đặt hẹn online sẽ hoạt động tốt hơn với điều kiện sau đây:

HƯỚNG DẪN SỬ DỤNG DỊCH VỤ CDN

Tìm hiểu Group Policy Object và các ví dụ

Chương 6. Transport Layer. Tài liệu : Forouzan, Data Communication and Networking

GIẢI THUẬT ĐỊNH TUYẾN (ROUTING ALGORITHM)

LINQ TO SQL & ASP.NET

LÂ P TRI NH WEB ASP.NET

CHƯƠNG 2: CÁC ĐẶC ĐIỂM VỀ MÔI TRƯỜNG PHÁT TRIỂN (IDE)

Phần 1: Hướng dẫn sử dụng PictureBox tạo Slide Show

BELGIUM ONLINE APPOINTMENT

Mô hình dữ liệu quan hệ (Relational data model)

Nhấn nút New để tạo 1 biến mới Trang 17

Kỹ thuật thu nhỏ đối tượng trong Design (Layout)

BÀI 6 LÀM VIỆC VỚI THÀNH PHẦN MỞ RỘNG CỦA CSS3

HƯỚNG DẪN QUẢN TRỊ HỆ THỐNG

MỤC LỤC. Giáo trình Thiết kế web Trang 1

Phần 2. SỬ DỤNG POWERPOINT ĐỂ CHUẨN BỊ NỘI DUNG TRÌNH BÀY

Dọn "rác" Windows 7 vào dịp cuối năm

BẢO MẬT TRONG SQL SERVER

Parallels Cloud Server 6.0

BÀI LAB ĐỔI TÊN DOMAIN

Bài 10: Cấu trúc dữ liệu

HỢP ĐỒNG MUA BÁN HÀNG HÓA QUỐC TẾ GV: NGUYỄN THỊ BÍCH PHƯỢNG

Tạo repository mới. The working tree. The staging index. Lệnh git init tạo một repository loại git. tại thư mục hiện tại: $ git init

Mạng máy tính - Computer Network: Hệ. Giao thức - Protocol:

Khối: Cao Đẳng nghề và Trung Cấp Năm 2009

Cập nhật ResultSet trong JDBC

HƯỚNG DẪN SỬ DỤNG NHANH MINDJET MIND MANAGER

Môn Học: Cơ Sở Dữ Liệu 2. Chương 3 LẤY DỮ LIỆU TỪ NHIỀU NGUỒN

B5: Time to coding. Tới thư mục src/example.java và thay đổi nội dung file như sau: Mã: package at.exam;

Google Search Engine. 12/24/2014 Google Search Engine 1

Chủ đề 7: Triển khai và Bảo trì. COMP1026 Introduction to Software Engneering CH7-1 HIENLTH

BÀI GIẢNG CHƯƠNG 3 GIAO TIẾP KẾT NỐI SỐ LIỆU

1 Bước 1: Test thử kit LaunchPad.

PHÁT TRIỂN ỨNG DỤNG WEB

Lecture 12. Trees (1/2) Nội dung bài học:

Ôn tập Thiết bị mạng và truyền thông DH07TT - Lưu hành nội bộ (không sao chép dưới mọi hình thức)

NHẬP MÔN LẬP TRÌNH KHOA HỌC DỮ LIỆU. Bài 10: Thư viện Pandas (2)

Đa ngôn ngữ (Internationalization) trong Servlet

Bài 13: C++11. EE3490: Kỹ thuật lập trình HK1 2017/2018 TS. Đào Trung Kiên ĐH Bách khoa Hà Nội

Hướng Dẫn Thực Hành Tập tin & Thư mục

Mô hình thực thi ASP.NET page Xây dựng Web Form HTML Control và Web Control Bổ sung code vào Page Page Event Life Cycle Postback event

Time Picker trong Android

BÀI THỰC HÀNH SỐ 1. Quản trị tập tin: 1/ Tạo các thư mục sau: Bài tập thực hành linux Linuxlab. bt1 bt11 bt111. bt121. bt12. bh1 bh11 bh111.

HTML DOM - Forms. MSc. nguyenhominhduc

Qu n ả tr h ố g t p ậ tin

dụng một chính sách, điều này giúp dễ dàng quản lý và cung cấp tính năng Load Balancing (cân bằng tải) phục vụ tốt hơn các yêu cầu của tổ chức.

Câu 1: (2 điểm) So sách giữa 2 đối tượng Response và Request. Cho ví dụ minh hoạ.

KIẾN TRÚC MÁY TÍNH. Giảng viên: ThS. Phan Thanh Toàn. v

Cấu hình Router FTTH ---X---

LAB IP SLA Bài 1. Bùi Quốc Kỳ ***

Exceptions. Outline 7/31/2012. Exceptions. Exception handling is an important aspect of objectoriented. Chapter 10 focuses on:

Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM LẬP TRÌNH MINICHAT. Bài giảng 3. Trang1. Khoa Khoa Học Và Kỹ Thuật Máy Tính

Kích hoạt phương thức xa (RMI- Remote Method Invocation )

B3: Bên khung Package Explore bên trái đi tới thư mục res, bạn sẽ thấy có 3 thư mục con:

PHÁT TRIỂN ỨNG DỤNG DI ĐỘNG NÂNG CAO

Bài thực hành số 2 QUYỀN và ROLE

Bài 10. Cấu trúc liên nối. khác nhau được gọi là cấu trúc liên nối. nhu cầu trao đổi giữa các module.

SMS Live Hướng dẫn sử dụng

Lập trình chuyên nâng cao. Lập trình phân tán (Distributed computing

Transcription:

Lab 04: LẬP TRÌNH WINDOWS FORM VỚI CÁC CONTROL NÂNG CAO (Các control trình bày dữ liệu dưới dạng danh sách) A. MỤC TIÊU: Sử dụng Visual Studio.NET 2010/2012/2013 tạo ứng dụng dạng Windows Forms với các control nâng cao dạng danh sách. Làm quen với việc sử dụng các control trên form như: NumericUpDown: Hộp chon tăng giảm giá trị số. Combobox: Hộp chọn 1 giá trị trong danh sách giá trị ListBox: Danh sách các mục chọn, cho phép chọn 1 hoặc nhiều mục GroupBox: Nhóm các đối tượng về cùng nhóm B. NỘI DUNG: Bài tập 1: Tạo một ứng dụng Windows Form cơ bản tính tiền công dịch vụ tại phòng nha. Với mỗi khách hàng, các dịch vụ cung cấp gồm: tẩy răng, cạo vôi, chụp hình răng và trám răng. Mỗi loại sẽ có chi phí riêng. Cuối cùng tính tổng các chi phí mà người khách phải trả. Lưu ý: chỉ tính tiền khi phần thông tin tên khách hàng đã được nhập (nếu thông tin này chưa có thì chương trình phát sinh MessageBox cảnh báo). Ứng dụng có giao diện đơn giản như hình 1 bên dưới. Hướng dẫn: Hình 1: Màn hình chính của ứng dụng Bước 1. Tạo ứng dựng Windows Form có tên DentalPaymentApp theo các bước sau Tạo project mới (Ctrl+Shift +N), Trang 25

Trong cửa sổ new project chọn Visual C# - Windows Phần template chọn Windows Forms Application Đặt tên project trong phần Name Xem hình mô tả các bước tạo ứng dụng Windows Form 1. Chọn ngôn ngữ lập trình 2. Chọn loại ứng dụng cho Project 3. Đặt tên Project 4. Chọn vị trí lưu Project 5. Đồng ý tạo Project Hình 2: Tạo ứng dụng Windows Form Bước 2. Sau khi hoàn tất các bước trên VS.NET sẽ phát sinh ra một project Windows Form mẫu, cho phép người lập trình bắt đầu xây dựng các ứng dụng. Giao diện của VS.NET cho ứng dụng vừa tạo có dạng như hình 3 bên dưới. Màn hình VS.NET cho ứng dụng Windows Form bao gồm các phần cơ bản (1): Toolbox: Chứa các control cho phép kéo thả vào Form (2): Màn hình thiết kế Form, có thể chuyển sang phần code editer (3): Cửa sổ Solution Explorer: Cho phép người lập trình có thể quản lý các thành phần trong project, hỗ trợ định vị nhanh chóng đến các file mã nguồn. (4): Cửa sổ property: cho phép user có thể custom lại các thành phần control trên form như: thiết lập các thuộc tính cho control, form, component, cho phép khai báo trình xử lý sự kiện của các control trên form Trang 26

1 2 3 4 Hình 3: Màn hình VS. NET phục vụ cho việc tạo project Windows Form Bước 3. Thiết kế form theo mô tả như sau Bảng 1: Mô tả các control trên form STT Name Control Thiết lập các thuộc tính cho control 1 lbltitle Label Text = Dental Payment Form, Font = Impact, Size = 17, ForeColor = Blue 2 lblname Label Text = Tên khách hàng 3 txtname TextBox 4 chkclean CheckBox Text = Cạo vôi 5 lblcleancost Label Text= $100000 6 chkwhitening CheckBox Text= Tẩy trắng 7 lblwhiteningcost Label Text= $1200000 8 chkxray CheckBox Text= Chụp hình răng 9 lblxraycost Label Text= $200000 10 lblfilling Label Text= Trám răng 11 numfilling NumericUpDown 12 lblfillcost Label Text= $80000 13 lbltotal Label Text= Total 14 txttotal TextBox Enable = False 15 btnexit Button Text= Thoát 16 btncalc Button Text= Tính tiền Trang 27

Hình 4: Giao diện của Form chương trình Cách thực hiện: - Chọn trong ToolBox control tương ứng rồi kéo thả vào vị trí xác định trên form. - Sử dụng cửa sổ properties thiết lập các thông tin: o Đổi tên của control theo mô tả ở bảng trên o Thiết lập các giá trị cho control theo mô tả ở bảng 1 Hình 5: Minh họa việc đổi tên của TextBox trên Form Trang 28

Bước 4. Tạo trình xử lý sự kiện click cho button Thoát : chức năng này khi thực hiện sẽ kết thúc ứng dụng (đóng form lại) Cách tạo trình xử lý sự kiện: có thể làm theo một trong hai cách - Cách 1: Double Click vào button cần tạo trình xử lý sự kiện trong màn hình Form design view: khi đó VS sẽ tạo trình xử lý sự kiện gắn với sự kiện Click của button Thoát Hình 6: Minh họa cách kích đúp vào button để tạo event handler - Cách 2: chọn button cần tạo trình xử lý, sau đó kích tab event trong cửa sổ Properties, kích đúp vào mục Click trong cửa sổ event. Hình 7: Minh họa các bước khai báo event handler từ cửa sổ properties của button Trang 29

Nội dung của trình xử lý sự kiện Click của button btnexit như sau Bước 5. Tạo chức năng tính tiền, chức năng này được kích hoạt khi button Tính tiền được chọn. Mô tả chức năng GetPay( ) như sau (GetPay() là phương thức thành viên của lớp Form chính: + Kiểm tra xem tên khách hàng có được nhập hay không? + Nếu chưa: xuất thông báo, yêu cầu nhập tên khách. + Đã nhập: thực hiện các bước sau Total = 0 If (cạo vôi) Total += 100.000 If ( tẩy trắng) Total += 1.200.000 If ( chụp hình răng) Total +=200000 Total += (số răng trám)*80000 Xuất số tiền ra TextBox txttotal Sinh viên tự viết phương thức GetPay theo mô tả bên trên! Tạo trình xử lý sự kiện cho button btncalc rồi trong trình xử lý sự kiện này gọi chức năng GetPay. Kết quả chương trình Trường hợp không nhập tên khách hàng: phát sinh message box cảnh báo Trang 30

Hình 8: Không tính tiền khi chưa nhập tên khách hàng Màn hình sau khi tính tiền cho khách Hình 9: Màn hình tính tiền cho khách Trang 31

Bài tập 2: Từ bài tập 1 hãy thực hiện bổ sung Bổ sung một ListBox vào form tính tiền, ListBox này dùng để lưu trữ các thông tin tính tiền của khách hàng. Mỗi thông tin tính tiền sẽ được lưu trên một dòng trong ListBox (một item của listbox). Một item gồm hai thông tin: <tên khách hàng> - <tổng số tiền thanh toán> Bổ sung chức năng Lưu: cho phép lưu trữ các thông tin tính tiền của khách hàng trong một file text. File text này có định dạng mỗi dòng là một thông tin tính tiền: gồm tên khách hàng + tổng số tiền. Bổ sung chức năng Đọc file: Cho phép load thông tin tính tiền khách hàng từ một file lưu trữ Tạo chức năng tùy chọn: Cho phép người tính tiền phòng nha có thể chỉnh lại đơn giá cho từng dịch vụ. Hiện tại ứng dụng trên các đơn giá là fix, ta sẽ cải tiến lại chức năng này. Sinh viên nên tạo file chứa đơn giá từng dịch vụ, tạo form cho phép người quản lý phòng nha có thể hiệu chỉnh lại giá tiền này, lưu lại file đó, và mỗi lần ứng dụng chạy thì đọc file đó để lấy đơn giá. Bài tập 3: Dành cho sinh viên khá, giỏi. Các chức năng trong bài tập 2 là dùng file dạng text. Phần nâng cao này sinh viên tìm hiểu file XML và xây dựng lại các file theo định dạng XML phục vụ các yêu cầu đã mô tả (Sinh viên tìm hiểu phần đọc và lưu trữ file dạng XML trong C#) Bài tập 4: Tạo Form frmthaotacso với Listbox như sau : Yêu cầu: - Chỉ cho nhập số vào textbox Nhập số - Khi nhập dữ liệu vào textbox Nhập số và nhấn Enter(hoặc click vào Cập Nhật) thì số mới nhập này được thêm vào Listbox đồng thời dữ liệu trong textbox bị xóa và focus được chuyển về textbox Trang 32

- Khi nhấn vào các phím chức năng, yêu cầu sẽ được thực hiện trên listbox Hướng dẫn : Bước 1: Thiết kế Form với các con trol được chỉ định như sau: STT Tên Control Loại Tên hàm xử lý 1 txtsonguyen TextBox 2 lstketqua ListBox 4 btcapnhat Button btcapnhat_click 5 bttang2 Button bttang2_click 6 btchonchandau Button btchonchandau_click 7 btlecuoi Button btlecuoi_click 8 btxoaphantudangchon Button btxoaphantudangchon_click 9 btxoaphantudau Button btxoaphantudau_click 10 btxoaphantucuoi Button btxoaphantudau_click 11 btketthuc Button btkettuc_click Bước 2 : Viết Code cho sự kiện như sau Chỉ cho nhập số vào textbox Nhập số private void txtsonguyen_textchanged(object sender, EventArgs e) Control ctrsonguyen = (Control)sender; if (ctrsonguyen.text.length > 0) if (!char.isdigit(ctrsonguyen.text[ctrsonguyen.text.length - 1])) this.errsonguyen.seterror(ctrsonguyen, "Vui lòng nhập số nguyên"); else this.errsonguyen.clear(); Đóng Form có thông báo hỏi đáp. private void frmthaotactrenlistbox_formclosing(object sender, FormClosingEventArgs e) if (MessageBox.Show("Bạn muốn thoát?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) e.cancel = true; Sự liện Click cho các button khác private void btcapnhat_click(object sender, EventArgs e) lstketqua.items.add(txtsonguyen.text); txtsonguyen.text = ""; txtsonguyen.focus(); private void bttang2_click(object sender, EventArgs e) int n = lstketqua.items.count; //Số mục trong lst for (int i = 0; i < n; i++) int tam = int.parse(lstketqua.items[i].tostring()) + 2; lstketqua.items.removeat(i); lstketqua.items.insert(i, tam.tostring()); Trang 33

private void btchonchandau_click(object sender, EventArgs e) int n = lstketqua.items.count; //Số mục trong lst for (int i = 0; i < n-1; i++) if(int.parse(lstketqua.items[i].tostring())%2==0) string s = lstketqua.items[i].tostring();//lay gia tri muc gia tri chan lstketqua.selecteditem = s;//chon muc co gia tri chan break; //Thuc hien duoc so chn dau thi ket thuc vong lap private void btlecuoi_click(object sender, EventArgs e) int n = lstketqua.items.count; //Số mục trong lst for (int i = n-1; i >=0; i--) if (int.parse(lstketqua.items[i].tostring()) % 2 == 1) string s = lstketqua.items[i].tostring();//lay gia tri muc gia tri lẻ lstketqua.selecteditem = s;//chon muc co gia tri le break; //Thuc hien duoc so le dau (tu duoi len) thi ket thuc vong lap private void btxoaphantudangchon_click(object sender, EventArgs e) int n = lstketqua.selecteditems.count; //Số mục dang duoc chon trong lstketqua for (int i = n-1; i >= 0; i--) lstketqua.items.remove(lstketqua.selecteditems[i].tostring()); private void btxoaphantudau_click(object sender, EventArgs e) lstketqua.items.remove(lstketqua.items[0].tostring()); private void btxoaphantucuoi_click(object sender, EventArgs e) int n = lstketqua.items.count; lstketqua.items.remove(lstketqua.items[n-1].tostring()); Trang 34

Bài tập 5 : Thêm vào project Form frmsinhvien thực hiện thao tác nhập danh sách sinh viên: Yêu cầu: - Nút > dùng để di chuyển các mục(còn gọi là item) được chọn từ listbox trái qua listbox phải và ngược lại cho < - Nút >> dùng để di chuyển tất cả các mục(kể cả không được chọn) từ listbox trái qua listbox phải và ngược lại cho << - Nút Xóa dùng để xóa nhưng item được chọn trên textbox trái Hướng dẫn : Bước 1: Thiết kế Form với các con trol được chỉ định như sau: STT Tên Control Loại Tên hàm xử lý 1 txthoten TextBox 2 lstbandau ListBox 3 lstketqua ListBox 4 btcapnhat Button btcapnhat_click 5 bttraisangphai Button bttraisangphai_click 6 bttatcatraisangphai Button bttatcatraisangphai_click 7 btphaisangtrai Button btphaisangtrai_click 8 bttatcaphaisangtrai Button bttatcaphaisangtrai_click 9 btxoa Button btxoa_click 10 btketthuc Button btkettuc_click Bước 2 : Viết Code cho sự kiện các button như sau private void btcapnhat_click(object sender, EventArgs e) lstbandau.items.add(txthoten.text); txthoten.text = ""; txthoten.focus(); private void Traisangphai_Click(object sender, EventArgs e) int n = lstbandau.selecteditems.count; //Tong so muc duoc chon for(int i=0;i<=n-1; i++) lstketqua.items.add(lstbandau.selecteditems[i].tostring()); for (int j = n - 1; j >= 0; j--) lstbandau.items.removeat(j); Trang 35

private void TatcaTraisangphai_Click(object sender, EventArgs e) int n = lstbandau.items.count; for (int i = 0; i <= n - 1; i++) lstketqua.items.add(lstbandau.items[i].tostring()); for (int j = n - 1; j >= 0; j--) lstbandau.items.removeall(); Tương tự cho các Button còn lại. ----------Hết Lab 04 ---------- Trang 36