Tải bản đầy đủ (.docx) (74 trang)

Hướng Dẫn Thực HànhLập Trình Windows Nâng Cao

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.56 MB, 74 trang )

Hướng dẫn thực hành - Lập trình Windows nâng cao
Hướng Dẫn Thực Hành
Lập Trình Windows Nâng Cao
Khối: Cao Đẳng và Trung Cấp
Năm 2011
Hướng dẫn:

Bài tập thực hành dựa trên giáo trình: Microsoft .Net Framework 3.5
Windows Forms Application Development.

Bài tập thực hành được chia theo làm nhiều Module

Mỗi Module được thiết kế cho thời lượng 3 tiết thực hành tại lớp với sự
hướng dẫn của giảng viên.

Tùy theo số tiết phân bổ, mỗi tuần học có thể thực hiện nhiều Module.

Sinh viên nên nghiên cứu và làm trước bài tập trước ở nhà. Các thắc
mắc sẽ được giảng viên giải quyết ở buổi thực hành.

Sinh viên phải làm tất cả các bài tập trong các Module ở tuần tương ứng.
Những sinh viên chưa hòan tất phần bài tập tại lớp có trách nhiệm tự làm
tiếp tục ở nhà.

Các bài có dấu (*) là các bài tập nâng cao dành cho sinh viên khá giỏi.

Module 1
Nội dung kiến thức thực hành:
+Một số thuộc tính của các control
+Các control LinkLabel, MaskedTextbox
+Thiết lập giao diện chương trình thông qua sự kết hợp giữa các control


Bài 1.
Mục đích:
Trang 1/74
Hướng dẫn thực hành - Lập trình Windows nâng cao
Sử dụng IDE của Visual Studio.Net với Layout Toolbar và Document Outline
Windows trong quá trình thiết kế giao diện. Sử dụng các thuộc tính Dock và
Anchor
Mô tả:
Exercise 1: Practice Configuring Controls (Trang 47-59)
Gợi ý:
Xem hướng dẫn thực hiện trong giáo trình.
Bài 2:
Mục đích:
Sử dụng thuộc tính của control để tạo giao diện tùy biến theo kích thước Form.
Mô tả:
Tạo giao diện như hình bên dưới với các yêu cầu như sau:
Trong quá trình thiết kế, khi người lập trình thay đổi kích thước Form thì Label
tiêu đề (Khoa Khoa Học và Kỹ Thuật Máy Tính -Đại Học Công Nghiệp Tp.HCM)
vẫn nằm ở giữa màn hình với các mép trái – phải không đổi, đường vẽ và nút
lệnh Exit vẫn ở vị trí phải- dưới với các mép không đổi.
Khi thực thi chương trình, người sử dụng không thể thay đổi kích thước của
Form. Vị trí mặc định của Form lúc ban đầu nằmn giữa màn hình. Đồng thời
Form không hiển thị trên thanh TaskBar.
Gợi ý:
Sử dụng thuộc tính Anchor cho các control.
Tạo đường kẻ ngang bằng một Label với thuộc tính size hợp lý
Bài 3:
Mục đích:
Sử dụng LinkLabel Control.
Sử dụng thuộc tính DialogResult của button control.

Gán phím tắt cho Textbox với Label tương ứng
Mô tả:
Lab: Practice with Command and Text Display Controls (Trang 69-71)
Gợi ý:
Xem hướng dẫn thực hiện trong giáo trình.
Trang 2/74
Hướng dẫn thực hành - Lập trình Windows nâng cao
Bài 4:
Mục đích:
Sử dụng MaskedTextBox để nhập số điện thọai theo khuôn mẫu quy định.
Mô tả:
Lab: Practice with Text Display Controls (Trang 75-79)
Gợi ý:
Xem hướng dẫn thực hiện trong giáo trình.
Bài 5:
Mục đích:
Sử dụng nhóm thuộc tính AutoComplete để tạo giao diện trợ giúp cho người sử
dụng trong việc nhập liệu trên Textbox.
Mô tả:
Viết chương trình tạo Form nhập thông tin khách hàng mức đơn giản như hình
bên dưới.
Khi người sử dụng nhập số điện thọai khách hàng, chương trình hiện danh sách
tùy chọn ở textbox gồm các đầu số: 090, 091, 095, 096, 098,0911, 0912.
Khi người sử dụng nhập quê khách hàng (tỉnh thành), chương trình hiện danh
sách tùy chọn ở textbox gồm các tỉnh thành đề nghị gồm: Huế, Đà Nẵng, HCM,
Hà Nội, Bến Tre, Thái Bình, Tiền Giang.
Thiết lập các thuộc tính để khi co dãn kích thước Form, thì vị trí mép của các đối
tượng vẫn không đổi.
Gợi ý:
Thiết lập danh sách dữ liệu hiển thị: thuộc tính AutoCompleteCustomSource

Chọn chế độ hiển thị: thuộc tính AutoCompleteMode
Thiết lập nguồn dữ liệu hiển thị: thuộc tính AutoCompleteSource
Trang 3/74
Hướng dẫn thực hành - Lập trình Windows nâng cao
Bài 6:
Mục đích:
Sử dụng nhóm thuộc tính AutoComplete để tạo giao diện trợ giúp cho người sử
dụng trong việc nhập liệu trên Textbox.
Mô tả:
Viết chương trình nhập sách đơn giản với giao diện như hình dưới.
Sách gồm 4 thông tin: Số Đăng Ký Cá Biệt, Tên Sách, Nhà Xuất Bản và Nơi
Xuất Bản.
+Sau khi người sử dụng nhập đủ thông tin sách và bấm nút Lưu, chương trình
xóa trắng các textbox, lưu Số ĐKCB vào listbox, đồng thời chuyển focus về
textbox Số ĐKCB
+Khi người sử dụng nhập nhà XB (hoặc Nơi XB), chương trình hiển thị danh
sách chọn lựa (autocomplete) tại các textbox tương ứng, với giá trị danh sách
chọn là các giá trị đã nhập (không trùng nhau) tại các trường tương ứng.
+Thiết lập thuộc tính anchor cho các control hợp lý.
+Khi người dùng bấm ALT+S: focus chuyển vào textbox số DKCB.
Khi người dùng bấm ALT+T: focus chuyển vào textbox tên sách.
Khi người dùng bấm ALT+B: focus chuyển vào textbox nhà xuất bản.
Khi người dùng bấm ALT+N: focus chuyển vào textbox nơi xuất bản.
Gợi ý:
Sử dụng nhóm các thuộc tính về Autocomplete.
Lưu các giá trị đã nhập của trường Nhà XB (và Nơi XB) vào các biến danh sách
(chỉ lưu các giá trị mới để danh sách không bị trùng lắp).
Chuyển danh sách này vào AutoCompleteCusomSource của các textbox tương
ứng
Bài 7:

Mục đích:
Trang 4/74
Hướng dẫn thực hành - Lập trình Windows nâng cao
Sử dụng thuộc tính DialogResult.
Mô tả:
Sử dụng tiếp tục chương trình ở bài kế trên. Khi người dùng bấm nút thoát,
chương trình sẽ hiện ra form xác nhận việc thoát.
Nếu người dùng bấm nút thoát, chương trình sẽ kết thúc.
Trang 5/74
Hướng dẫn thực hành - Lập trình Windows nâng cao
Module 2
Nội dung kiến thức thực hành:
+Một số thuộc tính của các control và Form
+Một số đối tượng Container mới.
+Thiết lập giao diện chương trình thông qua sự kết hợp giữa các control
Bài 1:
Mục đích:
Sử dụng một số thuộc tính của Form: Opacity, FormBorderStyle, Size,
StartPosition…
Mô tả:
Lab: Customizing a Windows Form – Exercise 1: Customize a Rectangular
Windows Form (Trang 16)
Gợi ý:
Xem hướng dẫn thực hiện trong giáo trình.
Bài 2:
Mục đích:
Thiết lập thuộc tính Region của Form để tạo Form với hình dạng bất kỳ (trong
bài tập này là hình tam giác).
Hiểu ý nghĩa của đối tương GraphicsPath.
Mô tả:

Lab: Customizing a Windows Form - Exercise 2: Create a Non-Rectangular
Windows Form (Trang 17)
Gợi ý:
Xem hướng dẫn thực hiện trong giáo trình.
Bài 3:
Mục đích:
Sử dụng một Container Controls: TabControl, FlowLayoutPanel,
TableLayoutPanel, SplitContainer.
Biết cách chọn Container Control thích hợp khi thiết kế giao diện.
Mô tả:
Lab: Practice with Container Controls (Trang 36)
Gợi ý:
Xem hướng dẫn thực hiện trong giáo trình.
Bài 4:
Mục đích:
Thiết kế giao diện với nhiều control sử dụng chung không gian màn hình, và
người sử dụng có thể tùy biến kích thước control đang làm việc.
Sử dụng các SplitContainer control lồng nhau.
Mô tả:
Trang 6/74
Hướng dẫn thực hành - Lập trình Windows nâng cao
Thiết kế Form sử dụng SplitContainer control để tạo giao diện nhập câu hỏi trắc
nghiệm như hình dưới.
Khi Form thay đổi kích thước, vị trí và kích thước tương đối giữa các textbox
vẫn giữ như lúc đầu tiên.
Gợi ý:
Sử dụng 4 SplitContainer với thiết lập về hướng (Orientation) thích hợp.
Tuần tự thêm vào từng SplitContainer control.
Bài 5:
Mục đích:

Sử dụng thuộc tính DialogResult của Button
Ghép chung sự kiện cho nhiều control
Cách chuyển dữ liệu giữa các Form thông qua kỹ thuật delegate
Mô tả:
Viết chương trình cho người sử dụng bình chọn thương hiệu điện thọai được
yêu thích nhất. Chương trình gồm 2 Form: Form1 và Form2.
Người sử dụng nhập tên và hãng điện thọai vào các textbox tại Form1. Nếu
không nhớ tên hãng ĐT, người sử dụng có thể double click vào textbox Hãng
điện thọai, chương trình sẽ hiển thị Form2 chứa các hãng ĐT. Người sử dụng
click chọn hãng nào, Form2 sẽ đóng lại và hiển thị tên hãng tương ứng ở
Form1.
Trang 7/74
Hướng dẫn thực hành - Lập trình Windows nâng cao
Gợi ý:
Thiết lập thuộc tính DialogResult của các button trên Form2
Form1 sẽ dùng kỹ thuật delegate để lấy dữ liệu.

Bài 6:
Mục đích:
Chuyển tab giữa nhiều control nhập liệu
Mô tả:
Tạo giao diện chương trình như hình. Khi người dùng nhập xong một textbox bất kỳ và
bấm phím Enter, chương trình sẽ chuyển focus đến control kế tiếp, giúp tạo sự thuận
tiện cho người nhập.
Module 3
Nội dung kiến thức thực hành:
+Sử dụng biến cố (event) cho Mouse và Keyboard
+Sử dụng WebBrowser control
+Sử dụng ToolStrip control
+Tạo một hay nhiều control lúc run-time

+Sử dụng Event cho các control được tạo lúc run-time
Trang 8/74
Hướng dẫn thực hành - Lập trình Windows nâng cao
Bài 1:
Mục đích:
Theo dõi các biến cố của Mouse: Click, DoubleClick, MouseClick,
MouseDoubleClick, MouseDown, MouseEnter, MouseHover, MouseLeave,
MouseMove, and MouseUp.
Sau khi thực hiện xong bài, cho biết điểm khác biệt giữa sự kiện Click và
MousecClick
Mô tả:
Lab 3: Practice with Mouse Events (Trang 174)
Gợi ý:
Xem hướng dẫn thực hiện trong giáo trình.
Bài 2:
Mục đích:
Ghép sự kiện
Mô tả:
Viết chương trình định dạng màu chữ và màu nền cho Label Khoa Khoa Học &
Kỹ Thuật Máy Tính.
Bài 3:
Mục đích:
Thêm control động lúc runtime
Cho phép control mới tương tác với người sử dụng thông qua các Event
Mô tả:
Viết chương trình với giao diện như hình dưới. Khi lúc khởi động, chương trình
gồm một button “Tạo Textbox” và một Groupbox hiển thị chuỗi: Chưa có textbox
nào.
Trang 9/74
Hướng dẫn thực hành - Lập trình Windows nâng cao

Sau khi người sử dụng bấm nút “Tạo textbox”, chương trình tạo một Tetxbox
mới và thêm ở Groupbox, đồng thời button này sẽ bị mờ.
Khi người sử dụng nhập nội dung trên textbox, nội dung này sẽ lập tức hiển thị
trên tiêu đề của Groupbox.
Khi nguời sử dụng double click vào textbox, thì nội dung của textbox sẽ bị xóa
hết.
Gợi ý:
Tạo một textbox và thêm vào controls của Groupbox
Tạo 2 hàm sự kiện của textbox: Textbox_Changed và Textbox_DoubleClick
Bài 4:
Mục đích:
Sử dụng WebBrowser control và ToolStrip control.
Viết chương trình tạo trình duyệt Web đơn giản
Mô tả:
Lab: Creating a WebBrowser
+Exercise 1: Creating a Web Browser (Trang 125)
Lab 1: Creating a ToolStrip–Based Web Browser
+Exercise 1: Creating a Web Browser (Trang 143)
+Exercise 2: Adding a Search Tool Strip (Trang 144)
Lab 2: Adding File Browsing Capability to Your Web Browser (Trang 160)
Gợi ý:
Xem hướng dẫn thực hiện trong giáo trình.
Bài 5:
Mục đích:
Nạp động nhiều đối tượng lúc run-time.
Quản lý các đối tượng mới tạo thông qua Collection Controls
Lập trình biến cố trên các đối tượng nạp động lúc run-time
Mô tả:
Trang 10/74
Hướng dẫn thực hành - Lập trình Windows nâng cao

Viết chương trình nạp động các đối tượng như sau.
Khi chương trình vừa khởi động, giao diện chương trình chứa textbox dùng để
nhập số phần tử n. Chương trình chỉ cho phép nhập số vào textbox, không cho
phép nhập chữ vào textbox.
Khi người sử dụng bấm OK (chương trình phải kiểm tra số nhập có hợp lệ hay
không-là số nguyên dương), chương trình sẽ tự động tạo n button động vào
như hình dưới, với giá trị text là ngẫu nhiên từ 2 100.
+Nút “Chọn số chẵn”: các button chứa số chẵn sẽ đổi màu chữ thành màu đỏ.
Các button còn lại màu chữ vẫn màu đen.
+Nút “Chọn số lẻ”: các button chứa số lẻ sẽ đổi màu chữ thành màu đỏ. Các
button còn lại màu chữ vẫn màu đen.
+Nút xóa tất cả: chương trình sẽ xóa tất cả button vừa tạo và đưa chương trình
về trạng thái ban đầu.
+Khi người sử dụng click vào một button chứa số: chương trình sẽ hiện thông
báo cho biết số đó phải là số nguyên tố hay không? Đồng thời button này sẽ bị
mờ, không cho bấm lần thứ 2.
Gợi ý:
Sử dụng FlowLayoutPanel để chứa các đối tượng nạp động lúc run-time, với
thuộc tính AutoScroll=True.
Dùng vòng lặp for each để duyệt qua collection Controls của FlowLayoutPanel.
Viết hàm kiểm tra số nguyên tố.
Bài 6:
Mục đích:
Đồng bộ trạng thái giữa nhiều control.
Mô tả:
Viết chương trình định dạng màu chữ cho Label (Khoa Khoa Học và Kỹ Thuật
Máy Tính). Người dùng có thể chọn cách định dạng bằng: menu, các
radiobutton hay Listbox. Khi định dạng màu bằng bất cứ cách nào, trạng thái
màu hiện tại của menu, các radiobutton hay Listbox đều được cập nhật giống
nhau.

Trang 11/74
Hướng dẫn thực hành - Lập trình Windows nâng cao
Trang 12/74
Hướng dẫn thực hành - Lập trình Windows nâng cao
Module 4
Nội dung kiến thức thực hành:
+Sử dụng ImageList control
+Sử dụng đối tượng Listview
Bài 1:
Mục đích:
Sử dụng ImageList control.
Thêm và truy xuất hình ảnh lưu trữ trong ImageList
Mô tả:
Viết chương trình hiển thị một mặt trăng xoay như hình bên dưới.
Người sử dụng có thể cho phép đảo chiều xoay bằng cách sử dụng hai button
Xoay sang trái và xoay sang phải.
+Sau khi làm xong phần trên, tinh chỉnh chương trình để điều khiển bằng một
button duy nhất như sau. Một button dùng để đảo chiều xoay, text hiển thị trên
button luôn thể hiện trạng thái cần đổi đến.

Gợi ý:
Sử dụng Timer. Thiết lập thuộc tính Interval khỏang 40-> 100 (ms).
Sử dụng ImageList chứa 8 Icon (moon01.ico …moon08.ico)
Lần lược hiển thị mỗi lần một hình khi Timer_Tick thực hiện.
Bài 2:
Mục đích:
Sử dụng ListView control.
Mô tả:
Exercise 1: Exercise 1: The Ski Instructor Reservation Form (Trang 105)
Gợi ý:

Xem hướng dẫn thực hiện trong giáo trình.
Trang 13/74
Hướng dẫn thực hành - Lập trình Windows nâng cao
Bài 3:
Mục đích:
Sử dụng Listview control.
Hiểu và nắm được các thuộc tính, method quan trọng của ListView
Mô tả:
Viết chương trình nhập dữ liệu vào Listview như hình bên dưới.
Người sử dụng nhập thông tin: (lastname, firstname, phone) và sử dụng nút Add
Name để nhập vào listview.
Các contact có biểu tượng (icon) hiển thị như hình.
Người sử dụng có thể thay đổi chế độ view của listview bằng menu View.
Menu FormatListview hiểu thị hộp thọai chọn màu dùng để thay đổi màu chữ
(forecolor) của Listview.
Gợi ý:
Sử dụng ListviewItem để thêm một dòng mới cho Listview
Sử dụng ImageList để chứa thư viện icon cho Listview. Kết nối Listview với
ImageList.
Sử dụng ColorDialog control để hiển thị hộp thọai chọn màu, và thay đổi
forecolor của Listview.
Bài 4:
Mục đích:
Phát triển bài tập 3 với yêu cầu chỉnh sửa thông tin.
Mô tả:
Khi người sử dụng double click vào một nhân viên trong listview, chương trình
sẽ hiển thị form mới gồm 3 textbox và hiển thị thông tin nhân viên đang chọn.
Sau khi người dùng chỉnh sửa thông tin này, và bấm nút lưu (ở form mới), form
này sẽ đóng lại và quay về form chính, đồng thời cập nhật lại thông tin trong
listview.

Bài 5:
Mục đích:
Trang 14/74
Hướng dẫn thực hành - Lập trình Windows nâng cao
Thao tác trên các phần tử của Listview.
Mô tả:
Viết chương trình nhập và quản lý danh sách như hình dưới. Chương trình
quản lý danh sách 2 lớp: Lớp A và lớp B. Lớp A là các sinh viên đang đăng ký
chờ nhập học. Lớp B là danh sách Sv đã được chấp nhận để vào lớp học.
Người sử dụng nhập danh sách sinh viên lớp A bằng cách nhập Mã SV và Họ
Tên SV trong 2 textbox, sau đó bấm nút OK.
Người sử dụng có thể chọn một hay nhiều SV trong 1 danh sách và chuyển qua
danh sách kia bằng các nút lệnh < hay >. Nút lệnh << và >> dùng để chuyển
tòan bộ danh sách.
Người sử dụng có thể tìm nhanh những SV nào đó theo tên hoặc mã (tìm không
chính xác, ví du: nhập Ca để tìm tất cả SV có mã hoặc tên chứa từ Ca).
Số thứ tự của SV do chương trình đánh tự động, luôn bắt đầu bằng số 1 và liên
tiếp 1,2,3….
Mã SV nhập vào danh sách không được trùng với các mã SV đã tồn tại trong cả
2 danh sách lớp A và lớp B.
Gợi ý:
Các Listview có thuộc tính MultiSelect =True
Chuyển một tử từ danh sách này sang danh sách khác: gồm 2 thao tác: thêm và
xóa
Trang 15/74
Hướng dẫn thực hành - Lập trình Windows nâng cao
Module 5
Nội dung kiến thức thực hành:
+Sử dụng TreeView control
+Kết hợp giữa TreeView và ListView

+Sử dụng ToolStrip control
Bài 1:
Mục đích:
Nạp danh sách vào TreeView. Kết hợp với ImageList control để hiển thị biểu
tượng cho các node của cây
Tạo và sử dụng ToolStrip control.
Mô tả:
Viết chương trình hiển thị danh mục các ký tự như hình. Các ký tự được chua
làm 3 nhóm: ký tự đặt biệt, chữ cái (từ a z) và chữ số (từ 1 50).
Trên toolstrip của chương trình chứa 2 nút lệnh dùng để đóng/mở tòan bộ cây.

Gợi ý:
Sử dụng ImageList lưu trữ 5 icon khác nhau và kết nối với Treeview
Sử dụng vòng lặp nhập các ký tự vào Listview
Bài 2:
Mục đích:
Nạp danh sách vào TreeView. Đồng bộ giữa TreeView và ListView.
Mô tả:
Trang 16/74
Hướng dẫn thực hành - Lập trình Windows nâng cao
Viết chương trình xem danh sách sinh viên của Khoa Khoa Học và Kỹ Thuật
Máy Tính -Đại Học Công Nghiệp Tp.HCM trường Đại Học Công Nghiệp Tp.HCM
như hình. Khi chương trình vừa thực thi, Treeview hiển thị danh sách các lớp –
các sinh viên như hình.
Khi nguời sử dụng chọn cấp Khoa, chương trình hiển thị tòan bộ danh sách
sinh viên thuộc Khoa đang chọn vào Listview. Khi người sử dụng chọn một lớp
bất kỳ thì chương trình hiển thị tòan bộ sinh viên của lớp đang chọn vào listview.
Khi chọn 1 sinh viên bất kỳ thì chỉ hiển thị sinh viên đó vào Listview.
Trang 17/74
Hướng dẫn thực hành - Lập trình Windows nâng cao


Gợi ý:
Kiểm tra vị trí của Node đang chọn trên Treeview.
Bài 3:
Mục đích:
Nạp danh sách vào TreeView. Phân biệt vị trí đang chọn trên Treeview.
Mô tả:
Viết chương trình nhập danh sách lớp và sinh viên của Khoa Khoa Học và Kỹ
Thuật Máy Tính -Đại Học Công Nghiệp Tp.HCM với giao diện như hình dưới.
Khi người sử dụng chọn node Trung Tâm CNTT-HUI, chương trình hiển thị
textbox cho phép nhập các lớp mới của Trung Tâm CNTT-HUI. Việc nhập được
thực hiện bằng nút lệnh OK hoặc bấm phím Enter.
Khi người sử dụng chọn một lớp nào đó trong treeview, chương trình hiển thị
textbox dùng để nhập tên các sinh viên thuộc lớp đó. Việc nhập được thực hiện
bằng nút lệnh OK hoặc bấm phím Enter.
Trang 18/74
Hướng dẫn thực hành - Lập trình Windows nâng cao
Khi người sử dụng chọn node sinh viên, chương trình sẽ hiển thị tên sinh viên
đó vào textbox, đồng thời khóa textbox và button, không cho phép họat động.
Gợi ý:
Phân biệt cấp của node đang chọn trên TreeView.
Module 6
Nội dung kiến thức thực hành:
+Sử dụng TreeView control, WebBrowser control
+Kết hợp giữa TreeView và ListView
+Nạp đối tượng động
Bài 1:
Mục đích:
Nạp danh sách vào TreeView. Nạp đối tượng động.
Mô tả:

Viết chương trình tóan vui với giao diện khởi đầu gồm một textbox và button OK
như hình dưới.
Sau khi người sử dụng nhập số phần tử n vào textbox và bấm OK, chương trình
sẽ tạo n tetxbox nạp động và tạo tập số ngẫu nhiên từ 2 200 như hình. Nút OK
sẽ bị mờ và không cho họat động. Treeview chứa danh sách các số này phân
theo 3 nhóm: các số chẵn, các số lẻ và các số nguyên tố với các icon khác nhau
(xem hình).
Khi người sử dụng thay đổi một giá trị nào đó của các textbox số trong mục “tập
số”, chương trình sẽ lập tức cập nhật danh sách mới vào TreeView.
Trang 19/74
Hướng dẫn thực hành - Lập trình Windows nâng cao
Khi người sử dụng bấm nút Clear, chương trình sẽ xóa tất cả textbox động,
treeview và trở về trạng thái lúc ban đầu.

Gợi ý:
Nạp động n textbox vào một FlowLayout panel.
Duyệt các textbox này và xây dựng Treeview.
Thêm sự kiện TextChanged cho các textbox này.
Bài 2:
Mục đích:
Nạp danh sách vào TreeView. Sử dụng một số hàm-phương thức trên chuỗi.
Mô tả:
Viết chương trình nhập danh danh bạ với yêu cầu giao diện như hình dưới.
+Khi chương trình vừa hiển thị, treeview chứa tất cả các chữ cái từ A->Z.
+Nhằm mục đích tiện lợi cho người sử dụng khi tìm tên, khi người sử dụng
nhập tên của một người nàp đó, chương trình sẽ đưa tên người này vào
treeview ở vị trí treenode có tương ứng với chữ các đầu của tên (xem hình).
+Khi người sử dụng chọn một tên nào đó, chương trình hiển thị lại họ - tên
người đó vào các textbox.
+Thêm một ToolStrip chứa textbox dùng để tìm người đầu tiên (theo first name

hay last name) và chọn trên treeview, đồng thời hiển thị tên người tìm thấy lên 2
textbox.
Chú ý là, tên người sử dụng nhập không bỏ dấu tiếng việt.
Trang 20/74
Hướng dẫn thực hành - Lập trình Windows nâng cao
Gợi ý:
Nạp danh sách ký tự từ A->Z vào Treeview
Dùng phương thức SubString(vitrí,số ký tự) để lấy ký tự đầu tiên của tên.
Chọn node ký tự tương ứng trong Treeview và thêm học+tên vào Node này.
Bài 3:
Mục đích:
Nạp đối tượng động. Quản lý và sử dụng các đối tượng động vừa nạp này.
Mô tả:
Viết chương trình bán vé rạp chiếu phim với các yêu cầu sau:
Hãy tạo một project giúp cho rạp chiếu phim quản lý việc bán vé của một rạp
hát. Rạp có 3 hàng ghế, mỗi hàng có 5 ghế, các ghế được đánh số từ 1 đến 15
và được phân thành 3 lô (xem hình):
Giá vé lô A 20 ngàn/vé - ghế từ 1-5
Giá vé lô B 30 ngàn/vé - ghế từ 6-10
Giá vé lô C 40 ngàn/vé- ghế từ 11-15
Trang 21/74
Hướng dẫn thực hành - Lập trình Windows nâng cao
Một người vào có thể mua nhiều vé, và Người bán sẽ chọn các ghế từ các
checkbox.
+Khi vừa chọn ghế nào, chương trình lập tức cập nhật danh sách các ghế đang
chọn và listbox bên dưới
+Khi vừa chọn ghế nào, chương trình lập tức tính và hiển thị tổng số tiền vào
label bên dưới
+ Khi người mua muốn hủy bỏ 1 vé nào đó, người bán sẽ chọn số ghế trong
listbox và bấm nút “Xóa ghế đang chọn”. Chương trình lập tức sẽ xóa số ghế

đó trong listbox và bỏ checkbox cho ghế đó.
+Nút “Xóa tất cả” sẽ xóa tất cả các số ghế trong listbox và đưa trạng thái tất cả
các checkbox về trạng thái không chọn
+Chương trình sử dụng kỹ thuật nạp động các control để sau này dễ dàng cho
việc nâng cấp số lượng ghế mỗi hàng.
+Chương trình cho phép người sử dụng thay đổi kích thước nhưng vẫn giữ bố
cục như ban đầu.
Gợi ý:
Nạp động các checkbox (đại diện cho các vị trí ghế) và ghép chung hàm sự
kiện.
Duyệt các checkbox này mỗi khi checkbox thay đổi và cập nhật Listbox.
Module 7
Nội dung kiến thức thực hành:
Sử dụng các control: PropertyGrid, StatusStrip, ErrorProvider, HelpProvider…
Bài 1:
Mục đích:
Trang 22/74
Hướng dẫn thực hành - Lập trình Windows nâng cao
Sử dụng các control: PropertyGrid, StatusStrip, ErrorProvider, HelpProvider
Mô tả:
Lab: Practice with User Assistance Controls: Ex 1,2,3,4 (Trang 588).
Gợi ý:
Xem hướng dẫn thực hiện trong giáo trình.
Bài 2:
Mục đích:
Sử dụng các control: PropertyGrid để thiếp lập giá trị cho các control. Sử dụng
sự kiện của mouse
Mô tả:
Tạo ứng dụng dùng để vẽ các điểm được click trên màn hình.
Gợi ý:

SV tự tạo class tên là myClass (myX, myY) chứa tọa độ các điểm được click
chuột. (không sử dụng class Point có sẵ).
Khi người dùng click vào điểm nào trên form, chương trình thêm điểm đó vào
danh sách và hiển thị trong listbox, đồng thời chương trìn sẽ vẽ line nối các
điểm với nhau.
Khi người dùng chọn điểm nào trên lisview, chương trình cho phép sửa tọa độ
điểm đó trên property grid. Ngay khi tọa độ vừa đựợc vẽ, chương trình sẽ vẽ lại
đường nối tất cả các điểm này.
Bài 3:
Mục đích:
Tạo bộ cài đặt cho ứng dụng với Click One
Mô tả:
Exercise 1: Publishing an Application to a Network Share (Trang 673).
Gợi ý:
Xem hướng dẫn thực hiện trong giáo trình.
Trang 23/74
Hướng dẫn thực hành - Lập trình Windows nâng cao
Bài 4:
Mục đích:
Tạo bộ cài đặt cho ứng dụng sử dụng Setup Projects for Deployment.
Mô tả:
Lab: Create a Setup Project (Trang 685).
Gợi ý:
Xem hướng dẫn thực hiện trong giáo trình.
Bài 5:
Mục đích:
Tạo bộ cài đặt cho ứng dụng
Mô tả:
Viết chương trình hiển thi danh sách SV từ file text vào listview. (sv.txt). Mỗi
hàng chứa 3 thông tin (mã, ten, lop) cách nhau bằng dấu phẩy.

Ví dụ:
1, Nguyễn văn A, NCTH1A
2, Nguyễn văn B, NCTH1B
3, Nguyễn văn C, NCTH1A
4, Nguyễn văn D, NCTH1B
Sau đó, thực hiện tạo bộ cài đặt cho chương trình này. Sau khi cài, chương
trình sẽ tạo serial number để tráng người khác sử dụng bộ cài, tạo shortcut trên
desktop tên là KhoaKHvaKTMT, tạo nhóm và shortcut cùng tên trong menu start
để khởi động ứng dụng.
Trang 24/74
Hướng dẫn thực hành - Lập trình Windows nâng cao
Module 8
Nội dung kiến thức thực hành:
+Tạo Connection với MS Access và SQL Server
+Sử dụng Exception
+Nắm được một số thuật ngữ trong ADO.NET và phạm vi áp dụng
Bài 1:
Mục đích:
Tạo connection (thời điểm design time) từ cửa sổ Server Explorer
Tạo connection (thời điểm design time) từ Data Source Configuration Wizard
Mô tả:
Exercise 1: Creating Connections in Server Explorer (Trang 190)
Exercise 2: Creating Connections using the Data Source Configuration Wizard
(Trang 191).
Gợi ý:
Xem hướng dẫn thực hiện trong giáo trình.
Bài 2:
Mục đích:
Tạo connection (thời điểm run time) sử dụng code. Sinh viên phải nắm được
tường tận thiết lập của connectionstring với MS Access, SQL Server.

Mở kết nối và kiểm tra trạng thái của connection.
Sử dụng event của connection.
Đọc thông tin về server từ connection
Mô tả:
Lab: Practice Opening and Closing Data Connections (Trang 196)
(Lưu ý: chỉ thực hiện kết nối với MS Access, SQL Server)
Gợi ý:
Xem hướng dẫn thực hiện trong giáo trình.
Bài 3:
Mục đích:
Xử lý biệt lệ (Exception). Xử lý các lỗi thông dụng.
Mô tả:
Viết chương trình thực hiện phép tóan chia với mục đích dùng để xứ lý các giá
trị do người sử dụng nhập. Giao diện chương trình bên dưới.
Trang 25/74

×