Hướng dẫn thực hành - Lập trình Windows 1
Trang 1/34
H
H
ư
ư
ớ
ớ
n
n
g
g
D
D
ẫ
ẫ
n
n
T
T
h
h
ự
ự
c
c
H
H
à
à
n
n
h
h
L
L
ậ
ậ
p
p
T
T
r
r
ì
ì
n
n
h
h
W
W
i
i
n
n
d
d
o
o
w
w
s
s
C
C
ă
ă
n
n
B
B
ả
ả
n
n
Khối Cao Đẳng và Trung Cấp
Năm 2010
Hướng dẫn:
Bài tập thực hành được chia làm nhiều Module
Mỗi Module được thiết kế cho thời lượng là 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 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 hoàn 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à.
Hướng dẫn thực hành - Lập trình Windows 1 - Module 1
Trang 2/34
Module 1
Nội dung kiến thức thực hành:
+ Làm quen với ngôn ngữ C#
+ Tạo ứng dụng dạng Console
+ Chuyển đổi kiểu dữ liệu
Bài 1:
Mục đích:
Sử dụng các thuộc tính và phương thức của các đối tượng trong ứng dụng Console.
Yêu cầu:
Viết ứng dụng dạng Console xuất lời chào sau:
Welcome to
C# Programming!
Programming by your name
Hướng dẫn:
+ Mở Microsoft Visual Studio
+ Tạo project mới: vào menu
File\New\Project
, xuất hiện màn hình New Project.
Hướng dẫn thực hành - Lập trình Windows 1 - Module 1
Trang 3/34
+ Trong màn hình New Project, chọn các mục như hình. Nhập vào tên project và thư
mục lưu project (ở ô
Name
và
Location
). Xong OK (xem hình).
Project tạo ra có một tập tin mặc định là
Program.cs
, trong đó có chứa hàm Main(). Sau
đây là cấu trúc nội dung tập tin
Program.cs:
namespace BaiTapLoiChao
{
class Program
{
static void Main(string[] args)
{
//?? Viết code vào đây
}
}
}
+ Thêm vào nội dung hàm Main() như sau:
Console.WriteLine("Welcome to ");
Console.WriteLine( "C# Programming!" );
Console.WriteLine( "Programming by your name" );
Console.ReadKey();
+ Chạy chương trình bằng cách nhấn phím F5 được kết quả mong muốn sau:
Bài 2:
Mục đích:
Xuất dữ liệu theo định dạng.
Yêu cầu:
+ Rào các lệnh trong hàm Main của bài 1 chuyển sang dạng comment.
+ Viết lại hàm Main như sau:
static void Main(string[] args)
{
//Console.WriteLine("Welcome to ");
Hướng dẫn thực hành - Lập trình Windows 1 - Module 1
Trang 4/34
//Console.WriteLine( "C# Programming!" );
//Console.WriteLine( "Programming by your name" );
//Console.ReadKey();
Console.WriteLine("{0}\n{1}", "Welcome to ", "C# Programming!");
Console.WriteLine( "Programming by your name" );
Console.ReadKey();
}
+ Chạy chương trình bằng cách nhấn phím F5, kết quả giống như bài tập 1:
Bài 3:
Mục đích:
+ Nhập dữ liệu từ bàn phím
+ Sử dụng hàm chuyển đổi kiểu
+ Định dạng xuất dữ liệu
Yêu cầu:
Tạo project với tên là ThaoTacSo, khi chương trình chạy, xuất ra yêu cầu nhập vào hai
số từ bàn phím, sau đó xuất ra kết quả tổng của hai số vừa nhập. Mở rộng chương trình cho
nhập phép tính để tính (+,-,*,/,%).
Ví dụ xem hình dưới đây:
Hướng dẫn:
Viết lệnh trong hàm Main() như sau:
int iSo1, iSo2, iTong;
Console.Clear();
Console.Write ( "Nhap So thu nhat: ");
Hướng dẫn thực hành - Lập trình Windows 1 - Module 1
Trang 5/34
// read first number from user
iSo1 = Convert.ToInt32(Console.ReadLine());
Console.Write("Nhap So thu hai: ");
// read second number from user
iSo2 = Convert.ToInt32(Console.ReadLine());
iTong = iSo1 + iSo2;
Console.WriteLine("Tong cua {0} va {1} la {2}", iSo1, iSo2, iTong);
Console.ReadKey();
Bài 4:
Làm lại bài tập 3 bằng cách sử dụng delegate.
Bài 5:
Viết chương trình giải phương trình bậc 1 và bậc 2.
Bài 6:
Làm bài tập trong giáo trình (thảo luận theo nhóm)
+ Try it out: Using a Struct (p.108)
+ Chapter 3: Exercise 1 to 5 (p.55)
+ Chapter 4: Exercise 3 (p.90)
+ Chapter 6: Exercise 3 (p.152)
Hướng dẫn thực hành - Lập trình Windows 1 – Module 2
Trang 6/34
Module 2
Nội dung kiến thức thực hành:
+ Tạo ứng dụng trên Windows Form.
+ Sử dụng các thuộc tính, phương thức và sự kiện của các đối tượng trong Windows
Form.
Bài 1:
Mục đích:
+ Nhận biết control cần sử dụng trong chương trình.
+ Thiết lập thuộc tính của control qua cửa sổ Properties.
+ Cách lấy và hiển thị dữ liệu trong textbox, label.
+ Cách xử lý nút.
Yêu Cầu:
Thiết kế giao diện như hình sau:
Viết lệnh để chương trình hoạt động như sau:
+
Người sử dụng sẽ nhập password vào textbox, sau đó nhấn nút "Hiển Thị" thì nội
dung của password sẽ được hiển thị ra trên label bên dưới.
Hướng dẫn:
Trong sự kiện Click của button “Hiển Thị”, gõ vào câu lệnh sau:
lblHienThi.Text = txtPassWord.Text;
+
Người sử dụng nhấn nút “Tiếp” để xoá nội dung các textbox, label và đặt con trỏ vào
textbox để người sử dụng nhập nội dung mới.
Hướng dẫn:
Trong sự kiện Click của button "Tiếp", gõ vào đoạn lệnh sau:
lblHienThi.Text = "";
txtPassWord.Clear();
txtPassWord.Focus();
+
Nhấp nút "Đóng" để kết thúc chương trình.
Hướng dẫn thực hành - Lập trình Windows 1 – Module 2
Trang 7/34
Hướng dẫn:
Trong sự kiện Click của nút “Đóng”, gõ vào câu lệnh
this.Close();
hoặc
Application.Exit();
Bài 2:
Mục Đích:
+ Sử dụng hộp thông báo.
+ Xử lý sự kiện Load của form.
Yêu Cầu:
Thiết kế giao diện chỉ chứa 1 button như sau:
Trước khi chương trình hiện lên, sẽ xuất ngay hộp thông báo hiển thị lời chào như sau:
Và khi người sử dụng nhấp chuột vào nút "Click Me" hay vào Form cũng sẽ xuất hiện
các hộp thông báo hiển thị các thông báo tương ứng như:
Button was clicked.
Form was clicked.
Hướng dẫn:
// sự kiện khi Button được click
private void btnClickMe_Click( object sender, EventArgs e )
{
MessageBox.Show( "Button was clicked." );
}
// sự kiện khi hiện Form
private void frmSimpleEvent_Load(object sender, EventArgs e)
{
MessageBox.Show("Hi , Welcome to C# programming!");
}
// sự kiện khi Form được click
private void frmSimpleEvent _Click(object sender, EventArgs e)
{
MessageBox.Show("Form was clicked.");
}
Hướng dẫn thực hành - Lập trình Windows 1 – Module 2
Trang 8/34
Bài 3:
Thiết kế giao diện như hình sau:
Viết lệnh để chương trình hoạt động như sau:
Nhấn vào button btnHo thì gán nội dung của txtHo cho lblHoTen.
Nhấn vào button btnTen thì gán nội dung của txtTen cho lblHoTen.
Nhấn vào button btnHoTen thì gán nội dung của txtHo cộng với txtTen cho lblHoTen.
Hướng dẫn:
lblHoTen.Text = txtHo.Text + " " + txtTen.Text
Nhấn double click vào lblHoTen thì nội dung của lblHoTen bị xóa.
Nhấn vào nút "Thoát chương trình" hoặc nhấn Esc thì đóng chương trình.
Bài 4:
Mục Đích:
Sử dụng các thuộc tính để sắp xếp, bố trí các đối tượng giao diện.
Yêu cầu:
Với giao diện của bài 3, yêu cầu sinh viên sử dụng thuộc tính Dock và Anchor sao cho
khi người sử dụng thay đổi kích thước Form, thì các đối tượng trên Form vẫn được sắp xếp
hợp lý, dễ nhìn.
Bài 5:
Mục đích:
+ Xử lý checkbox và radiobutton.
+ Xử lý sự kiện TextChanged của textbox.
Yêu Cầu:
Thiết kế giao diện như hình sau:
Hướng dẫn thực hành - Lập trình Windows 1 – Module 2
Trang 9/34
Yêu cầu:
1. Khi chương trình hiện lên:
a. Radiobutton Red được chọn mặc định.
b. Con trỏ xuất hiện ngay tại ô txtNhapten.
2. Khi gõ vào ô txtNhapten thì label lblLapTrinh
chạy song song cùng nội dung.
Hướng dẫn:
Viết trong sự kiện
TextChanged của txtNhapten:
private void txtNhapTen_TextChanged(object sender, EventArgs e)
{
lblLapTrinh.Text = txtNhapTen.Text ;
}
3. Nhấn nút "Thoát" hoặc Esc thì thoát chương trình.
4. Nhấn radiobutton Red, Green, Blue, Black thì đổi màu chữ tương ứng trong ô lblLapTrinh
và ô txtNhapten.
Hướng dẫn:
Viết trong sự kiện
CheckedChanged của từng radiobutton:
private void raddo_CheckedChanged(object sender, EventArgs e)
{
lblLapTrinh.ForeColor = Color.Red;
txtNhapTen.ForeColor = Color.Red;
}
5. Nhấn các checkbox chữ đậm, nghiêng, gạch chân thì đổi style chữ trong ô lblLapTrinh
và ô
txtNhapten tương ứng.
Hướng dẫn:
Viết trong sự kiện
CheckedChanged của từng checkbox:
private void chkdam_CheckedChanged(object sender, EventArgs e)
{
lblLapTrinh.Font = new Font(lblLapTrinh.Font.Name, lblLapTrinh.Font.Size,
lblLapTrinh.Font.Style ^ FontStyle.Bold);
}
txtNhapten
chkBold
radGreen
lblLapTrinh
btnThoat
Hướng dẫn thực hành - Lập trình Windows 1 – Module 2
Trang 10/34
Bài 6:
Mục đích:
Thao tác với PictureBox.
Yêu Cầu:
Thiết kế giao diện như hình sau:
Viết lệnh để chương trình hoạt động như sau:
Khi chương trình vừa hiện lên thì:
Con trỏ được đặt tại vị trí ô txtName.
Hình CDRom lớn hiện ra, hình nhỏ ẩn.
Hướng dẫn: thiết lập thuộc tính Visible của picSmall thành false (khi thiết kế)
Rê chuột vào hình thì hiện lên tooltip “Click Me”.
Hiệu chỉnh Tab Order sao cho hợp lý (tham khảo hình dưới)
lblMessage
picBig
radRed
txtName
txtMessage
radGreen
btnDisplay
btnClear
btnExit
chkVisible
picSmall
Hướng dẫn thực hành - Lập trình Windows 1 – Module 2
Trang 11/34
Nhấn vào button "Display" hoặc phím Enter thì gán nội dung của ô txtName và txtMessage
cho lblMessage.
Hướng dẫn:
lblMessage.Text = txtName.Text + " : " + txtMessage.Text;
Nhấn vào button "Clear" thì xóa nội dung trong ô txtName và txtMessage.
Hướng dẫn:
txtMessage.Clear();
txtName.Clear();
Nhấn vào radiobutton "Red", "Green" … thì đổi màu chữ trong ô txtMessage thành màu tương
ứng.
Hướng dẫn:
lblMessage.ForeColor = Color.Red;
Cho ẩn hiện lblMessage phụ thuộc vào giá trị của checkbox "Message visible".
Hướng dẫn
: lblMessage.Visible = chkVisible.Checked;
Nhấn vào button "Exit" hoặc phím Esc thi đóng chương trình.
Click chuột vào hình CDRom nào thì hình đó ẩn đi và hiện hình CDRom khác lên.
Hướng dẫn:
picBig.Visible = false;
picSmall.Visible = true;
Khi chương trình chạy hoàn chỉnh, hãy hiệu chỉnh hai hình CDRom chồng lên nhau.
Bài 7:
Mục đích:
+ Thao tác thêm, xóa, sửa dữ liệu trên ListBox.
+ Xử lý dữ liệu số trên ListBox.
+ Viết lệnh chọn các dòng trên ListBox.
Yêu cầu:
Thiết kế giao diện và thực hiện các chức năng sau:
Hướng dẫn thực hành - Lập trình Windows 1 – Module 2
Trang 12/34
Khi người sử dụng nhập một số vào textbox rồi Enter hoặc nhấn nút "Cập nhật" thì số đó được
thêm vào listbox, đồng thời nội dung trong textbox bị xóa và con trỏ được chuyển về textbox.
Người dùng nhấn vào nút nào thì thực hiện chức năng tương ứng của nút đó.
Hướng dẫn:
Lưu ý thuộc tính
AcceptButton của form.
Phần tử đầu tiên trong danh sách có vị trí bằng 0.
Bài 8:
Mục đích:
+ Xử lý dữ liệu kiểu chuỗi trên ListBox.
+ Chuyển thông tin qua lại giữa 2 ListBox.
Yêu cầu:
Thiết kế giao diện như sau:
Thực hiện các yêu cầu sau:
Quy định Form hiển thị giữa màn hình. Không cho người sử dụng thay đổi kích thước Form.
Quy định việc di chuyển tab hợp lý.
Các listbox được phép chọn nhiều mục (kết hợp giữa phím Shift, Control và chuột)
Khi người sử dụng nhấn nút "Cập nhật" hoặc nhấn phím Enter thì đưa tên sinh viên từ
textbox vào danh sách lớp A (không chấp nhận dữ liệu rỗng).
Khi nhấn nút ">" hoặc "<" thì sẽ di chuyển các mục đang chọn sang listbox bên kia tương
ứng.
Khi nhấn nút ">>" hoặc "<<" thì sẽ di chuyển toàn bộ các mục sang listbox bên kia
tương ứng.
Nút lệnh "Xóa lớp A", "Xóa lớp B" cho phép xóa các mục đang chọn trong listbox tương ứng.
Thêm vào giao diện 1 combobox Lớp, trong đó có 2 lớp: Lớp A, Lớp B, theo đó người sử
dụng có thể chọn lớp để cập nhật sinh viên vào lớp mong muốn.
Hướng dẫn thực hành - Lập trình Windows 1 – Module 2
Trang 13/34
Bài 9:
Mục đích:
Sử dụng MenuStrip.
Yêu cầu:
Thiết kế bổ sung hệ thống menu cho bài tập 8.
Các mục menu sẽ thực hiện chức năng tương tự như các button của bài 8.
Khi nhấp vào mục menu "Thông tin" thì sẽ xuất ra hộp thông báo, cho biết thông tin của sinh
viên thực hiện chương trình:
Hướng dẫn:
Từ sự kiện của memu item, gọi lại các sự kiện của button đã xử lý.
Bài 10:
Mục đích:
+ Tạo một ứng dụng liên kết các ứng dụng đã tạo ra từ các project trước.
+ Tạo form Flash
+ Tạo form About
Yêu cầu:
Tổ chức Form chính như mẫu sau:
Hướng dẫn thực hành - Lập trình Windows 1 – Module 2
Trang 14/34
Hướng dẫn:
Thiết lập một số thuộc tính của Form chính:
IsMDIContainer
True
WindowState
MaximumSize
Liên kết các project đã có sẵn:
o
Vào menu Project chọn <Add Existing Items>
o
Chọn tập tin cần đưa vào chương trình (tập tin có phần mở rộng là .cs)
o
Viết lệnh để liên kết form:
frmABC f = new frmABC();
f.MdiParent = this;
f.Show();
Thiết kế Form Splash cho chương trình (tùy ý) đặt tên là frmFlashForm:
Hướng dẫn:
Thiết lập một số thuộc tính của Form Splash:
FormBorderStyle
None
StartPosition
CenterToScreen
TopMost
True
Đưa vào form 1 đối tượng Timer để điều khiển việc đóng form tự động. Thiết lập thuộc
tính cho Timer: Enabled=True và Interval = 10000. Trong sự kiện Timer_Tick(), gõ vào
đoạn lệnh sau:
this
.DialogResult = DialogResult.OK;
Hướng dẫn thực hành - Lập trình Windows 1 – Module 2
Trang 15/34
timer1.Enabled =
false
;
Viết lại hàm main trong tập tin Program.cs như sau:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
frmFlashForm f = new frmFlashForm();
f.ShowDialog();
if (f.DialogResult == DialogResult.OK)
{
Application.Run(new frmMain());
}
}
Thiết kế Form About cho chương trình, tùy ý nhưng phải mang thông tin về chương
trình như: tên chương trình, phiên bản, tác giả,…
Hướng dẫn:
Thiết lập một số thuộc tính của Form About:
ControlBox
False
FormBorderStyle
FixedDialog
ShowInTaskbar
False
Viết lệnh cho nút "OK" của Form About:
this
.Close();