Hướng dẫn thực hành - Lập trình Windows 1 - Module 1 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
Trang 1Hướng dẫn thực hành - Lập trình Windows 1
Hướng Dẫn Thực Hành Lập Trình Windows Căn Bả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à.
Trang 2Hướng dẫn thực hành - Lập trình Windows 1 - Module 1
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
Trang 3Hướng dẫn thực hành - Lập trình Windows 1 - Module 1
+ 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
{
classProgram
{
staticvoid 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:
staticvoid Main(string[] args)
{
//Console.WriteLine("Welcome to ");
Trang 4Hướng dẫn thực hành - Lập trình Windows 1 - Module 1 //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: ");
Trang 5Hướng dẫn thực hành - Lập trình Windows 1 - Module 1 // 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)
Trang 6Hướng dẫn thực hành - Lập trình Windows 1 – Module 2
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
Trang 7Hướng dẫn thực hành - Lập trình Windows 1 – Module 2
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
privatevoid btnClickMe_Click( object sender, EventArgs e )
{
MessageBox.Show( "Button was clicked." );
}
// sự kiện khi hiện Form
privatevoid frmSimpleEvent_Load(object sender, EventArgs e)
{
MessageBox.Show("Hi , Welcome to C# programming!");
}
// sự kiện khi Form được click
privatevoid frmSimpleEvent _Click(object sender, EventArgs e)
{
MessageBox.Show("Form was clicked.");
}
Trang 8Hướng dẫn thực hành - Lập trình Windows 1 – Module 2
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:
Trang 9Hướng dẫn thực hành - Lập trình Windows 1 – Module 2
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:
privatevoid 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:
privatevoid 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:
privatevoid 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
Trang 10Hướng dẫn thực hành - Lập trình Windows 1 – Module 2 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)
radRed
txtName
txtMessage
radGreen
btnDisplay
btnClear
btnExit chkVisible
picSmall
Trang 11Hướng dẫn thực hành - Lập trình Windows 1 – Module 2
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:
Trang 12Hướng dẫn thực hành - Lập trình Windows 1 – Module 2
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
Trang 13Hướng dẫn thực hành - Lập trình Windows 1 – Module 2 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:
Trang 14Hướng dẫn thực hành - Lập trình Windows 1 – Module 2
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;
Trang 15Hướng dẫn thực hành - Lập trình Windows 1 – Module 2
timer1.Enabled = false;
Viết lại hàm main trong tập tin Program.cs như sau:
{
f.ShowDialog();
{
}
}
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();