Tiếp nội dung phần 1, Bài giảng Lập trình cơ bản: Phần 2 cung cấp cho người học những kiến thức như: Giới thiệu về lập trình trên Form; Làm việc với Form; Một số điều khiển thông dụng; Một số điều khiển đặc biệt;...Mời các bạn cùng tham khảo để nắm chi tiết nội dung giáo trình!
Trang 1116
CHƯƠNG 4: LẬP TRÌNH TRÊN FORM
Trong chương này, giới thiệu cách xây dựng một ứng dụng Windows Forms cơ bản bằng cách sử dụng các điều khiển thông dụngtrong các ứng dụng GUI Đồng thời hướng dẫn cách thiết lập các thuộc tính của Windows Forms và các điều khiển bằng cách sử dụng thiết kế trực quan hoặc cửa sổ Properties và thay đổi hoặc kiểm tra giá trị của các thuộc tính tự động bằng cách sử dụng mã lệnh trong C#
4.1 Giới thiệu về lập trình trên Form
Trước NET, các nhà phát triển có vài chọn lựa trong việc xây dựng một ứng dụng Windows Họ có thể xây dựng một ứng dụng bằng C hay C++ sử dụng Win32 API Việc này là công việc rất khó và chi phối thời gian Tiếp đến là sử dụng Microsoft Foundation Classes (MFC) là một thư viện lớp sử dụng C++ được gói gọn trong Win32 API để xây dựng úng dụng Windows và Visual Basic là một công cụ phát triển mạnh cho phép tạo các ứng ụng Windows tương đối nhanh chóng Tuy nhiên, các giải pháp này đều không sử dụng NET Framework hay CLR
.NET Framework chứa một tầng lớp tiện ích mới dựa trên Win32 API và giống như MFC và Visual Basic, nó cho phép phát triển các ứng dụng Windows hiệu suất cao hơn và dễ dàng hơn Môi trường này được gọi là Windows Forms, cho phép các lập trình viên tạo racác ứng dụng Windows tương tác tốt hơn và lớn hơn sử dụng bất
kỳ ngôn ngữ NET nào
4.2 Làm việc với Form
4.2.1 Một số khái niệm
Windows Forms là một tập hợp các thư viện lớpđược quản lý trong NET Framework để phát triển các ứng dụng desktop trên máy tính Trong Windows Forms, Form là một cửa sổ giao diện cho phép hiển thị thông tin và tương tác với người dùng
Trang 2117
Các ứng dụng Windows Forms thường được xây dựng bằng cách thêm các điều khiển vào Form và xây dựng sự kiện tương ứng với các hành động của người dùng, chẳng hạn như kích chuột hay bấm phím nào đó Một điều khiển (control) là một thành phần
có giao diện riêng (User Interface) và có thể hiển thị dữ liệu hoặc nhận dữ liệu vào
Để xây dựng một ứng dụng Windows Forms, có thể sử dụng rất nhiều đối tượng của lớp thuộc các không gian tên khác nhau (namespace), tuy nhiên có một không tên quan trọng không thể thiếu trong ứng dụng Windows Forms đó là System.Windows.Forms
System.Windows.Forms chứa các lớp dùng để tạo ứng dụng Windows với giao diện người sử dụng mang các đặc điểm ưu việt có trên hệ điều hành Windows
Ví dụ 4.1 sau đây sẽ tạo ứng dụng Windows Form như mẫu sau:
Hình 4.1: Giao diện ví dụ 4.1 Yêu cầu:
- Đặt dòng tiêu đề Form là Ví dụ 4_1
- Hiển thị dòng chữ Xin chào trên Form
-Khi kích chuột vào nút ―Thoát‖: Thực hiện đóng Form trên
Hướng dẫn thực hiện:
Bước 1: Tạo ứng dụng Windows Forms Application:
Mở Visual Studio 2010 vào File|New|Project và thực hiện thiết lập theo hình 4.2
Trang 3118
Hình 4.2: Các bước tạo ứng dụng Windows Forms Application
Sau khi click ―Ok‖, Visual Stuidio 2010 sẽ có giao diện như hình 4.3:
Hình 4.3: Giao diện ứng dụng Windows Forms Application sau khi tạo
Khi làm việc với ứng dụng Windows Form, một số cửa sổ thường xuyên sử dụng, như hình 4.3, ở giữa sẽ là giao diện của Form1 vừa tạo ra (Form1.cs[Design]), nơi được dùng để thiết kế giao diện ứng dụng, sẽ chứa những điều khiển được thêm vào, bên trái sẽ là cửa số Toolbox nơi chứa các điều khiển cho phép kéo thả vào Form
Trang 4119
Hình 4.4: Cửa sổ Toolbox
Bên phải là cửa sổ Cửa sổSolutionExplorer:Hiển thị các Project trong Solution, hiển thị tất cả các tệp trong Project và Project với tên được tô đậmsẽ được chạy đầu tiên
Hình 4.5: Cửa sổ Solution Explorer
Chú ý: Nếu các cửa sổ này không xuất hiện thì vào View để mở lại các cửa sổ
đó
Bước 2: Thay đổi tiêu đề cho Form
Để thay đổi tiêu đề Form, chọn Form1 trong cửa sổ Form1.cs[Design] và mở cửa sổ Properties để thay đổi thuộc tính Text trên Form1
Trang 5120
Hình 4.6: Cửa sổ Properties của Form1
Nếu cửa sổ Properties không xuất hiện thì chọn Form1 và nhấn phím F4
Bước 3: Hiển thị dòng chữ ―Xin chào‖ trên Form1
- Mở cửa sổ Toolbox, tìm tới điều khiển Label , giữ chuột và kéo vào Form1 như hình 4.7:
Hình 4.7: Thêm điều khiển Label vào Form1
- Chọn điều khiển label1 trên Form1, mở cửa sổ Properties của điều khiển label1
và sửa thuộc tính tính Text ban đầu là ―label1‖ thành ―Xin chào!‖
Trang 6121
Hình 4.8: Thay đổi thuộc tính Text của điều khiển label1
Kết quả:
Hình 4.9: Kết quả sau khi thay đổi thuộc tính Text của điều khiển label1
- Tiếp theo thay đổi Font chữ cho điều khiển label1 Mở cửa sổ Properties của điều khiển label1, chọn thuộc tính Font, kích chuột vào biểu tƣợng sẽ xuất hiện của sổ Font nhƣ hình 4.10
Hình 4.10: Cửa sổ Font
- Thực hiện các thay đổi sau:
Font: Time New Roman
Trang 7122
Size: 16 Font style: True
- Sau đó thay đổi màu chữ bằng cách thiết lập thuộc tính ForeColor: Blue
Kết quả:
Hình 4.11: Thay đổi Font và màu chữ của điều khiển label1
Bước 4: Thêm nút ―Thoát‖ và viết mã lệnh cho sự kiệnKích chuộtcủa nút
―Thoát‖
- Thêm điều khiển Button từ Toolbox vào Form1, thực hiện các thiết lập thuộc tính chon button1 như sau:
Name:btThoat Text: Thoát
- Trên cửa sổ Properties của nút ―Thoát‖, chọn biểu tượng để mở danh sách các sự kiện (event) của đối tượng lớp Button như hình 4.12, chọn sự kiện Click
và double click vào sự kiện này, sẽ xuất hiện trong file Forms.cs một phương thức được sinh ra tương ứng với sự kiện Click của nút thoát (btThoat_Click) như hình 4.13
Trang 8123
Hình 4.12: Chọn sự kiện Click
Hình 4.13: Phương thức btThoat_Click
- Viết mã lệnh cho sự kiện Kích chuộtcủa nút ―Thoát‖
private void btThoat_Click(object sender, EventArgs e)
MDI Form
Một Form đƣợc gọi là MDI Form khi thuộc tính IsMdiContainer có giá trị True Khi chuyển thuộc tính IsMdiContainer của Form từ False sang True, lập tức màu nền của Form đổi thành màu xám nhƣ hình 4.14
Hình 4.14: Màu nền của MDI Form
Ví dụ 4.2: Thiết lập thuộc tính IsMdiContainer
//Tạo Form frm và cho frm là MDI Form
Trang 9Child Form là Form khi nạp lên sẽ nằm trong một MDI Form Để Form trở
thành Child Form thì khai báo thuộc tính MdiParent tương ứng với MDI Form
Ví dụ 4.3: Khai báo để mở Child Form có tên frm lớp Form3
Form frm = new Form3();
frm.MdiParent = this;//this thể hiện Form gọi đến Form Frm là MDI Form frm.Show();//Hiển thị Form
Normal Form
Normal Form là Form không phải MDI Form hoặc Child Form
4.2.3 Thuộc tính của Form
Những thuộc tính chung của Windows Form được liệt kê trong bảng sau:
Name Là thuộc tính để xác định tên của Form, mặc định, thuộc
tính Name của Form đầu tiên trong ứng dụng là Form1 Backcolor Thuộc tính xác định màu nền của Form
BackgroundImage Thuộc tính xác định hình nền cho Form
Font Thuộc tính xác định kiểu, kích thước và loại font được hiển
thị trên Form và trong những điều khiển trong Form Size Kích thước của Form bao gồm: Width và Height
Start Position Thuộc tính xác định vị trị mặc định xuất hiện của Form trên
màn hình máy tính người sử dụng, có các thuộc tính sau:
- Manual - vị trí và kích thước của Form phụ thuộc vào vị trí xuất hiện của nó
- CenterScreen - xuất hiện ở chính giữa màn hình
- WindowsDefaultLocation - Form xuất hiện tại vị trí mặc định của Windows theo kích thước của Form
- Windows DefaultBounds - Form được hiển thị tại vị trí mặc định của Windows và các chiều của chúng phụ thuộc vào hệ điều hành Windows
- Center Parent - Form được mở như một cửa sổ con của một Form khác và xuất hiện tại vị trí chính giữa so với Form cha Text Xác định tiêu đề của Form
Trang 10125
WindowState Xác định trạng thái xuất hiện của Form: Normal, Maximized,
hay Minimized
Bảng 4.1: Một số thuộc tính của Form
Ví dụ 4.4: Tạo Form và thực hiện thay đổi một số thuộc tính trên Form như sau:
Name: frm4_4 Text: Ví dụ 4_4 Size: 500, 500 BackColor:Red WindowState: Maximized Kết quả Form hiển thị như hình 4.15
Hình 4.15: Form sau khi thay đổi một số thuộc tính theo ví dụ 4.4
4.2.4 Sự kiện trên Form
Những sự kiện trong Windows Form được liệt kê như bảng sau:
Sự kiện Mô tả
Click Sự kiện này xảy ra khi click vào bất kỳ nơi nào trên Form
Closed Sự kiện này xảy ra khi một Form được đóng lại
Deactivate Sự kiện xảy ra khi một Formbị mất trạng thái sử dụng
Load Sự kiện xảy ra khi một Formđược tải trong bộ nhớ cho lần đầu tiên MouseMove Sự kiện này xuất hiện khi chuột được rê trên một Form
MouseDown Sự kiện xảy ra khi chuột được nhấn trên Form
MouseUp Sự kiện xảy ra khi chuột được thả trên Form
Resize Sự kiện xảy ra khi thay đổi kích thước Form
Closing Sự kiện xảy ra khi đang đóng Form
Bảng 4.2: Một số sự kiện của Form
4.2.5 Phương thức của Form
Phương thức Mô tả
Trang 11126
Show Được sử dụng để xuất hiện một Form bằng cách thiết lập thuộc
tính Visible của Form ấy là true ShowDialog Hiển thị Form dạng modal (không cho phép dùng Form khác khi
trừ khi nó được đóng lại) Close Dùng để đóng một Form
Hide Dùng để ẩn một Form
Bảng 4.3: Một số phương thức của Form
Ví dụ 4.5: Các sự kiện và phương thức của Form
Yêu cầu:
- Tạo Form như mẫu sau:
Hình 4.16: Giao diện Form ví dụ 4.5
- Viết các thông báo cho các sự kiện Load(), Closing(), Resize(), Closed()
- Khi kích chuột vào nút ―Hiện Form‖: Hiển thị 1 Form mới
- Khi kích chuột vào nút ―Ẩn Form‖: Ẩn Form vừa mở
- Khi kích chuột vào nút ―Hiện Form dạng modal‖: Mở Form dưới dạng modal
- Khi kích chuột vào nút ―Đóng Form‖: Đóng Form
Bước 1: Tạo Form đặt tên là frmVidu4_5
STT Đối tượng Thuộc tính Giá trị
2 Label Text Một số phương thức của
Form
Trang 12127
STT Đối tượng Thuộc tính Giá trị
Text Hiện Form dạng modal
Bước 2: Viết mã lệnh cho các sự kiện của Form
private void frmVidu4_5_Load(object sender, EventArgs e)
Bước 3: Viết mã lệnh cho sự kiện Click của các nút trên Form:
Form frm = new Form();//Khai báo đối tượng Form frm sử dụng trong các sự kiện click của các nút
private void btHien_Click(object sender, EventArgs e)
Trang 134.3 Một số điều khiển thông dụng
4.3.1 Các thuộc tính và sự kiện chung
Hầu hết các điều khiển trên Form đều có một số thuộc tính chung như trong bảng 4.4:
BackColor Màu nền của điều khiển
Enabled Điều khiển được phép tương tác (true) hay không được phép tương
tác (false) với người dùng
ForeColor Màu chữ của điều khiển
Name Tên của điều khiển
Text Nội dung chuỗi hiển thị trên điều khiển
Visible Cho phép điều khiển hiện (True) / không hiện (False) khi chạy ứng
dụng
Width Là chiều rộng của điều khiển tính từ cạnh trái của điều khiển đến
cạnh phải của điều khiển
Height Là chiều cao của điều khiển tính từ cạnh trên của điều khiển đến
cạnh dưới của điều khiển
Bảng 4.4: Một số thuộc tính chung của các điều khiển
Các sự kiện chung thường sử dụng của các điều khiển được trình bày trong bảng 4.5
Click Xảy ra khi điều khiển bị kích chuột Trong một vài điều khiển,
event này cũng xảy ra khi nhấn phím Enter
MouseDown Xảy ra khi kích chuột trái nhưng chưa thả ra
MouseMove Xảy ra đến khi con trỏ chuột đi qua 1 điều khiển
MouseUp Xảy ra khi kích chuột trái và thả ra
KeyDown Xảy ra khi vừa bấm một phím bất kỳ từ 1 điều khiển đang được
chọn.Sự kiện này luôn được gọi trước sự kiện KeyUp
KeyPress Xảy ra khi vừa bấm một phím bất kỳ từ 1 điều khiển đang được
chọn Sự kiện này được gọi sau sự kiện KeyUp
KeyUp Xảy ra khi vừa bấm một phím bất kỳ rồi thả ra từ 1 điều khiển
Trang 14129
đang đƣợc chọn Sự kiện này luôn đƣợc gọi sau sự kiện KeyDown
Bảng 4.5: Một số sự kiện chung của các điều khiển
4.3.2 Nhóm điều khiển Label
TextAlign Canh lề (Left / Center / Right)
Bảng 4.6: Một số thuộc tính của Label
Chẳng hạn, thiết kế Form dạng đăng nhập, bên cạnh các điều khiển yêu cầu nhập họ tên sinh viên, mã sinh viên, lớp, Form chứa các điều khiển Label:―Họ tên SV‖, ―Mã SV‖, ―ĐĂNG NHẬP‖, ―Lớp‖ nhƣ hình 4.17
Hình 4.17: Sử dụng điều khiển Label
LinkArea Vùng liên kết theo chiều dài và ký tự bắt đầu
LinkBehavior Trạng thái của liên kết, mặc định là SystemDefault, có thể
chọn: AllwasUnderline, HoverUnderline hay NeverUnderline
Trang 15130
LinkColor Màu của liên kết
VisitedLinkColor Màu của liên kết sau khi đã chọn
Bảng 4.7: Các thuộc tính của LinkLabel
- Sự kiện:
LinkClicked Xảy ra khi kích chuộttrên điều khiển LinkLabel
DoubleClick Xảy ra khi kích chuột hai lần trên điều khiển LinkLabel
Bảng 4.8: Các sự kiện của LinkLabel
Ví dụ 4.6: Điều khiển LinkLabel
Yêu cầu:
- Tạo Form theo mẫu:
Hình 4.18: Ví dụ về điều khiển LinkLabel
- Khi kích chuột vào điều khiển LinkLabel sẽ chuyển tới địa chỉ trang https://www.google.com.vn/ trên trình duyệt nhƣ hình sau:
Hình 4.19: Hiển thị trang https://www.google.com.vn/ trên trình duyệt web Hướng dẫn thực hiện
Trang 16131
Bước 1: Tạo Form và đặt tên là frmVidu4_6, them điều khiển LinkLabel vào trong Form
STT Đối tượng Thuộc tính Giá trị
Text Điều khiển LinkLabel
2 LinkLabel Text https://www.google.com.vn
Name linkLabel1 Bước 2: Viêt khai báo liên kết cho điều khiển LinkLabel trong sự kiện frmVidu4_6_Load
private void frmVidu4_6_Load(object sender, EventArgs e)
{
this.linkLabel1.Links.Add(0,100,‛https://www.google.com.vn");
} //Thêm một liên kết mới vào đối tương linkLabel1
Bước 3: Kích chuột hai lần vào điều khiển linkLabel1 để sinh sự kiện LinkClicked và thực hiện thêm đoạn mã lệnh sau vào sự kiện này
private void linkLabel1_LinkClicked(object sender,
Text Xác định chuỗi hiển thị của TextBox
Multiline Cho phéphiển thị văn bản trên nhiều dòng
PasswordChar Thuộc tính này cho phép lấy một ký tự làm đại diện cho
Trang 17132
MouseClick Xảy ra khi kích chuột trên điều khiển TextBox
MultilineChanged Xảy ra khi thuộc tính Multiline thay đổi giá trị từ True
sang False hay ngược lại
Bảng 4.10: Một số sự kiện của TextBox
Ví dụ 4.7: Điều khiển TextBox
Yêu cầu:
- Tạo Form theo mẫu sau:
Hình 4.20: Ví dụ về điều khiển TextBox
- Các nhãn: ―Tên đăng nhập‖, ―Mật khẩu‖, ―Mô tả‖
- Các điều khiển để nhập tên đăng nhập, mật khẩu và mô tả là các Textbox
Lập trình cho các sự kiện:
- Kích chuộtvào nút ―Đăng nhập‖: Kiểm tra xem tên đăng nhập có phải là
―abcde‖ và mật khẩu là ―12345‖ hay không và sẽ đưa ra thông báo là đăng nhập thành công hay thất bại
- Kích chuột vào nút ―Xóa‖: Thực hiện xóa nội dung của các điều khiển TextBox
- Kích chuột vào nút ―Thoát‖: Thực hiện đóng Form
- Nếu TextBox tên đăng nhập là rỗng thì nút ―Đăng nhập‖ bị vô hiệu hóa, ngược lại cho phépkiểm tra khi kích chuột vào nút ―Đăng nhập‖
Hướng dẫn thực hiện
Bước 1: Tạo Form và đặt tên là frmVidu4_7, thêm các điều khiển TextBox
và Button vào trong Form
Text Điều khiển TextBox
2 TextBox Multiline True
3 TextBox PasswordChar *
Trang 18133
Bước 2: Viết mã lệnh cho sự kiện Vidu4_7_Load
private void Vidu4_7_Load(object sender, EventArgs e)
txtMatkhau.Clear();//Xóa nội dung của TextBox
txtTendangnhap.ResetText();//Gán giá trị thuộc tính Text bằng giá trị mặc định
Bước 4: Viết mã lệnh cho sự kiện TextChanged của txtTendangnhap, nếu có ký
tự được nhập vào thì nút ―Đăng nhập‖ có thuộc tính Enabled là True, ngược lại
Trang 19Hướng dẫn thực hiện:
Bước 1: Tạo Form và đặt tên là frmVidu4_8, thêm các điều khiển vào trong Form
Trang 20Font style Bold
Bước 2: Xây dựng các hàm kiểm tra dữ liệu và hàm tìm ƯCLN
private bool Kiemtra()
{
int so1, so2;
bool kt1, kt2;
kt1 = int.TryParse(txtSo1.Text, out so1);
kt2 = int.TryParse(txtSo2.Text, out so2);
return kt1 && kt2 && so1 >0 && so2 >0;
Trang 21PromptChar Ký tự nhắc nhở khi nhập dữ liệu
BeepOnError Xuất hiện tiếng Beep khi dữ liệu nhập không hợp lệ
PasswordChar Thuộc tính này cho phép lấy một ký tự làm đại diện cho
tất cả các ký tự đƣợc nhập vào
Bảng 4.11: Một số thuộc tính của MaskedTextBox
Hình 4.22: Một số định dạng cho thuộc tính Mask
- Sự kiện:
TextChanged Xảy ra khi chuỗi trên điều khiển thay đổi
MouseClick Xảy ra khi kích chuột trên điều khiển
MaskedTextBox
Trang 22137
MaskChanged Xảy ra khi định dạng nhập liệu trong thuộc tính
Mask thay đổi MaskInputRejected Xảy ra khi dữ liệu nhập vào điều khiển bị từ chối TypeValidationCompleted Xảy ra khi MaskedTextBox hoàn tất việc kiểm tra
cú pháp (parsing) cho giá trị hiện hành thông qua property ValidatingType
Bảng 4.12: Một số sự kiện của MaskedTextBox
Ví dụ 4.9: Điều khiển MaskedTextBox
Yêu cầu:
- Tạo Form theo mẫu sau:
Hình 4.23: Ví dụ về điều khiển MaskedTextBox
- Điểu khiển MaskedTextBox cho phép nhập ngày tháng năm, sẽ xuất hiện thông báo lỗi nếu nhập sai và hiển thị kết quả ngày tháng năm nếu nhập đúng
- Khi kích chuột vào nút ―Hiển thị‖: Hiển thị ngày tháng năm nếu nhập đúng trong điều khiển MaskedTextBox
Trang 23138
Bước 2: Viết mã lệnh cho sự kiện MaskInputRejected, bằng cách click 2 lần
chuột vào điều khiển mtbNgaythangnam
private void mtbNgaythangnam_MaskInputRejected(object sender,
MaskInputRejectedEventArgs e)
{
MessageBox.Show("Lỗi: " + e.RejectionHint.ToString() +
"; vị trí: " + e.Position.ToString());
}//Xuất hiện lỗi nếu nhập dữ liệu không đúng
Bước 3: Viết mã lệnh cho các sự kiện Click của các nút ―Hiển thị‖
private void btHienthi_Click(object sender, EventArgs e)
{
DateTime value;
bool kt = DateTime.TryParse(mtbNgaythangnam.Text, out value);
if(kt) MessageBox.Show("Ngày: " + value.ToLongDateString());
else MessageBox.Show("Ngày không hợp lệ ");
}
3 RichTextBox
- Công dụng: cho phép hiển thị văn bản trên nhiều dòng
- Thuộc tính và sự kiên: tương tự như điều khiển TextBox
4.3.4 Nhóm điều khiển ComboBox, ListBox
1 ComboBox
- Công dụng: Dùng để hiển thị một danh sách các mục cho phép lựa chọn /
hoặc nhập vào một chuỗi để lựa chọn
- Thuộc tính:
Thuộc tính Mô tả
Items Lưu trữ các mục (item) trong ComboBox, thuộc tính
Itemscó rất nhiều phương thức được sử dụng như để thêm1 phần tử(Add), xóamột phần tử (Remove), xóa toàn
bộ (Clear) hay trả về số phần tử thông quá thuộc tính Count của Items…
SelectedItem Trả về hoặc gán Item (object) được chọn
SelectedText Trả về hoặc gán nội dung thể hiện ứng với phần tử được
chọn SelectedIndex Trả về hoặc gán giá trị chỉ mục ứng với phần tửđang chọn
Text Trả về hoặc gán giá trị chuỗi ứng với phần tử được chọn
DropDownStyle Kiểu trình bày danh sách các phần tử, mặc định là
Trang 24TextChanged Xảy ra khi chuỗi trên điều khiển thay đổi
MouseClick Xảy ra khi kích chuột trên điều khiển
ComboBox SelectedIndexChanged Xảy ra khi chỉ mục chọn thay đổi
Bảng 4.14: Một số sự kiện của ComboBox
Ví dụ 4.10: Điều khiển ComboBox
Yêu cầu:
- Tạo Form theo mẫu sau:
Hình 4.24: Ví dụ về điều khiển ComboBox
- Điểu khiển ComboBox lưu trữ các phép toán (+ - * / %)
- Các nhãn:‖Số hạng 1‖, ―Số hạng 2‖, ―Phép tính‖, ―=‖ và một nhãn dùng
để hiển thị kết quả của phép tính
- Các điều khiển nhập số hạng 1 và số hạng 2 là các điều khiển TextBox
- Khi kích chuột vào nút ―Tính‖: Dựa trên việc lựa chọn phép tính sẽ tính
kết quả của phép tính đó với hai số hạng được nhập vào và hiển thị ra nhãn kết quả
- Khi kích chuột vào ―Thoát‖: Đóng Form
- Nếu chọn phép toán ―/‖ trong điều khiển ComboBox sẽ xuất hiện một
thông báo yêu cầu nhập số hạng thứ 2 là một số khác 0
Hướng dẫn thực hiện:
Bước 1: Tạo Form và đặt tên là frmVidu4_10, thêm các điều khiển vào trong
Form
Trang 25140
Hình 4.25: Cửa sở String Collection Editor
Bước 3: Cách thứ 2 để thêm phần tử vào điều khiển ComboBox là sử dụng phương thức Add của thuộc tính Items như trong đoạn mã lệnh sau:
private void frmVidu4_10_Load(object sender, EventArgs e)
Trang 26141
}
Bước 4: Viết mã lệnh cho sự kiện SelectedIndexChanged của đối tượng ComboBox cbbPheptoan (kích chuột 2 lần vào điểu khiển ComboBox để sinh sự kiện SelectedIndexChanged) Kiểm tra phép toán được chọn có phải là ―/‖, nếu đúng thì đưa ra thông báo phải nhập số hạng thứ 2 là số khác 0
private void cbbPheptoan_SelectedIndexChanged(object sender, EventArgs e)
{
if(cbbPheptoan.Text=="/")
MessageBox.Show("Số hạng thứ 2 phải là số khác 0");
}
Bước 5: Viết mã lệnh cho sự kiện kích chuột vào nút ―Tính‖
private void btTinh_Click(object sender, EventArgs e)
Bước 6: Viết mã lệnh cho sự kiện kích chuột vào nút ―Thoát‖
private void btThoat_Click(object sender, EventArgs e)
Trang 27142
Thuộc tính Mô tả
Items Lưu trữ các phần tử trong ListBox, thuộc tính Items có rất
nhiều phương thức được sử dụng như để thêm một phần
tử (Add), xóa một phần tử (Remove), xóa toàn bộ (Clear) hay trả về số phần tử thông qua thuộc tính Count của Items…
SelectedItem Trả về hoặc gán phần tử (object) được chọn
SelectedText Trả về hoặc gán chuỗi thể hiện ứng với phần tử được
chọn SelectedIndex Trả về hoặc gán giá trị chỉ mục ứng với phần tử đang
chọn Text Trả về hoặc gán giá trị chuỗi ứng với phần tử được chọn SelectionMode Xác định cách lựa chọn các phần tử trong ListBox Có 4
tử từ ListBox
Bảng 4.15: Một số thuộc tính của ListBox
- Sự kiện:
TextChanged Xảy ra khi chuỗi trên điều khiển thay đổi
MouseClick Xảy ra khi người sử dụng kích chuột trên điều
khiển ListBox SelectedIndexChanged Xảy ra khi chỉ mục chọn thay đổi
Bảng 4.16: Một số sự kiện của ListBox
Ví dụ 4.11: Điều khiển ListBox
Yêu cầu:
- Tạo Form theo mẫu sau:
Trang 28143
Hình 4.26: Ví dụ về điều khiển ListBox
- Điểu khiển ListBox lưu trữ các số nguyên
- Điều khiển để nhập một số nguyên là điều khiển TextBox:
Lập trình sự kiện khi kích chuột vào các nút như sau:
- Với nút ―Thêm‖: Thêm số nguyên vào ListBox
- Với nút ―Thoát‖: Đóng Form
- Với nút ―Tổng các phần tử‖: Tính tổng các số nguyên có trong ListBox
- Với nút ―Xóa phần tử đầu‖: Xóa phần tử đầu tiên trong ListBox
- Với nút ―Xóa phần tử cuối‖: Xóa phần tử cuối cùng trong ListBox
- Với nút ―Xóa phần tử hiện tại‖: Xóa phần tử được chọn trong ListBox
Hướng dẫn thực hiện
Bước 1: Tạo Form và đặt tên là frmVidu4_11, thêm các điều khiển vào trong Form
Text Làm việc với Listbox
2 ListBox SelectionMode One
4 Label
Text Làm việc với Listbox
Font style Bold
Trang 29144
Bước 2: Xây dựng hàm kiểm tra dữ liệu nhập vào TextBox txtSonguyen
private bool Kiemtra()
Bước 3: Viết mã lệnh cho sự kiện kích chuột vào các nút có trong Form
private void btThem_Click(object sender, EventArgs e)
Trang 30tong = tong + so;
Trang 31- Thuộc tính:
Thuộc tính Mô tả
Text Thuộc tính này sử dụng để nhận hoặc gán chuỗi ký tự
hiển thị của Checkbox Checked Đƣợc sử dụng để xác định CheckBox đƣợc chọn hay
không CheckState Trạng thái của điều khiển CheckBox đang chọn, có ba
trạng thái: Checked, Unchecked, Indeterminate
ThreeState Cho phép hay không 3 trạng thái Checked, Unchecked,
Indeterminate của điều khiển CheckBox
Bảng 4.17: Một số thuộc tính của CheckBox
- Sự kiện:
MouseClick Xảy ra khi kích chuộtvào điều khiển ListBox
CheckedChanged Xảy ra khi kích chuột vào điều khiển CheckBox Click Xảy ra khi kích chuột vào điều khiển CheckBox CheckStateChanged Xảy ra khi thuộc tính CheckState bị thay đổi
Bảng 4.18: Một số sự kiện của CheckBox
Ví dụ 4.12: Điều khiển CheckBox
Yêu cầu:
- Tạo Form theo mẫu sau:
Trang 32147
Hình 4.27: Ví dụ về điều khiển CheckBox
- Các điều khiển nhập 6 số a, b, c, d, e, f là các TextBox
- Điều khiển để hiển thị kết quả là RichTextBox
- Khi chọn CheckBox ―Tìm max‖: Hiển thị số lớn nhất trong 6 số được nhập trong các điều khiển TextBox
- Khi chọn CheckBox ―Giải hệ phương trình‖: Hiển thị nghiệm của hệ phương trình:
Text Làm việc với CheckBox
Trang 33148
12 RichTextBox Name txtKetqua
Bước 2: Xây dựng hàm kiểm tra dữ liệu nhập vào TextBox txtSonguyen
float a, b, c, d, e, f;//Khai báo các biến
bool Kiemtra(out float a,TextBox txtA)
Trang 34else
{
if (Dx == 0 && Dy == 0) txtKetqua.Text += "\r\nHệ phương trình vô số nghiệm";
else txtKetqua.Text += "\r\nHệ phương trình vô nghiệm"; }
private void cbbGiaihephuongtrinh_CheckedChanged(object sender, EventArgs e) {
Items Liệt kê các mục giá trị trong CheckedListBox, thuộc tính
Items có rất nhiều phương thức được sử dụng như để thêm phần tử (Add), xóa một phần tử (Remove), xóa toàn
bộ (Clear) hay trả về số phần tử thông quá thuộc tính Count của Items…
Trang 35150
SelectedItem Trả về hoặc gán Item (object) được chọn
SelectedValue Trả về hoặc gán giá trị ứng với phần tử kiểu object được
chọn SelectedIndex Trả về hoặc gán giá trị chỉ mục ứng với phần tử đang
chọn SelectionMode Xác định cách thức mà lựa chọn những phần tử trong
SelectedIndexChanged Xảy ra khi chỉ mục chọn thay đổi
SelectedValueChanged Xảy ra khi giá trị của phần tử thay đổi
ItemChecked Xảy ra khi kích chuộtvào biểu tượng CheckBox
của từng phần tử
Bảng 4.20: Một số sự kiện của CheckedListBox
Ví dụ 4.13: Điều khiển CheckedListBox
Yêu cầu:
- Tạo Form theo mẫu sau:
Hình 4.28: Ví dụ về điều khiển CheckedListBox
- Các điều khiển nhập m, n là các điều khiển TextBox
- Khi chọn CheckBox ―ƯCLN‖: Hiển thị ước số chung lớn nhất của 2 số được nhập trong các điều khiển TextBox
- Khi chọn CheckBox ―BCNN‖: Hiển thị bội số chung nhỏ nhất của 2 số được nhập trong các điều khiển TextBox
- Khi chọn CheckBox ―Số lớn nhất‖: Hiển thị số lớn nhất của 2 số được nhập trong các điều khiển TextBox
Hướng dẫn thực hiện
Bước 1: Tạo Form và đặt tên là frmVidu4_13, thêm các điều khiển vào trong Form
Trang 367 TextBox Multiline True
Trang 37- Thuộc tính:
Thuộc tính Mô tả
Text Thuộc tính này sử dụng để nhận hoặc gán chuỗi ký tự là
tiêu đề của RadioButton Checked Là thuộc tính đƣợc sử dụng để xác định RadioButton
RadioButton Click Xảy ra khi kích chuột vào điều khiển CheckBox
Bảng 4.22: Một số sự kiện của RadioButton
Ví dụ 4.14: Điều khiển RadioButton
Trang 38153
Yêu cầu:
- Tạo Form theo mẫu sau:
Hình 4.29: Ví dụ về điều khiển RadioButton
- Khi chọn RadioButton ―Tính tổng chữ số của n‖: Hiển thị tổng các chữ
số của n, giá trị được nhập trong điều khiển TextBox
- Khi chọn RadioButton ―Tính 1 + 1/2 + 1/3+ + 1/n‖: Hiển thị tổng
- Nhãn: ―Nhập n‖ và nhãn được dùng để hiển thị kết quả
Hướng dẫn thực hiện
Bước 1: Tạo Form và đặt tên là frmVidu4_14, thêm các điều khiển vào trong Form
Text Điều khiển RadioButton
2 RadioButton Text Tính tổng chữ số của n
Trang 39float tong = 0; int i;
for (i = 1; i <= n; i++) tong = tong + 1.0f / i;
lbKetqua.Text = " Tổng = " + tong.ToString();
}
else MessageBox.Show("Nhập n không thỏa mãn");
}
4.3.6 Điều khiển Button
- Công dụng: để thực hiện một tác vụ nào đó khi kích chuột vào điều khiển
- Thuộc tính:
Thuộc tính Mô tả
Text Thuộc tính này sử dụng để nhận hoặc gán chuỗi ký tự là
tiêu đề của Button Image Chọn Image trong phần Resource để trình bày hình trên
điều khiển Button
Trang 40155
Bảng 4.23: Một số thuộc tính của Button
- Sự kiện:
MouseClick Xảy ra khi kích chuột trên điều khiển Button
Click Xảy ra khi kích chuộtvào điều khiển Button
Bảng 4.24: Một số sự kiện của Button
4.4 Một số điều khiển đặc biệt
4.4.1 Nhóm điều khiển Menu
1 Điều khiển MenuStrip
- Công dụng: tổ chức các phần tử (ToolStripMenuItem) theo cấu trúc cây
và trình bày trên màn hình thành thanh menu để có thể lựa chọn, ngoài ra còn có các điều khiển con ToolStripComboBox (ComboBox), ToolStripSeparator (Gạch phân cách) và ToolStripTextBox (TextBox)
- Thuộc tính:
Thuộc tính Mô tả
AllowItemReorder Thuộc tính này cho phép tùy chọn các phần tử bằng bàn
phím khi bấm phím Alt TextDirection Thuộc tính này cho phép thay đổi hình thức trình bày trên
menu là ngang (Horizontal) hoặc dọc (Vertical90 hoặc Vertical270)
Items Thuộc tính này trả về danh sách các phần tử của
MenuStrip
Bảng 4.25: Một số thuộc tính của MenuStrip
Hình 4.30: Ví dụ về điều khiển MenuStrip