Tải bản đầy đủ (.pdf) (174 trang)

Đề cương lập trình nâng cao với c

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 (4.39 MB, 174 trang )

Đề cương môn học: Lập trình nâng cao với C#

MỤC LỤC
BÀI 1 TỔNG QUAN VỀ .NET VÀ CÁC CONTROL TRONG C# ............................... 7
1.1

Môi trường thực thi ngôn ngữ chung – CLR ......................................................... 7

1.2

Ngôn ngữ trung gian - IL ....................................................................................... 8

1.3

Giới thiệu về .Net Framework ............................................................................... 9

1.4

Tạo một ứng dụng Windows form ....................................................................... 10

1.5

Lớp Control .......................................................................................................... 10

1.6

Form ..................................................................................................................... 12

1.6.1 Chức năng ..................................................................................................... 12
1.6.2 Một số thuộc tính thường dùng ..................................................................... 12
1.6.3 Một số sự kiện thường dùng.......................................................................... 15


1.6.4 Minh họa ....................................................................................................... 16
BÀI 2 MỘT SỐ CONTROL TRONG C# ...................................................................... 20
2.1

Textbox ................................................................................................................ 20

2.1.1 Chức năng ..................................................................................................... 20
2.1.2 Một số thuộc tính thường dùng ..................................................................... 20
2.2

RichTextBox ........................................................................................................ 27

2.2.1 Chức năng ..................................................................................................... 27
2.2.2 Một số thuộc tính thường dùng ..................................................................... 27
2.3

DataGridView ...................................................................................................... 33

2.3.1 Chức năng ..................................................................................................... 33
2.3.2 Một số khái niệm liên quan đến DataGridView ........................................... 33
2.4

ListView ............................................................................................................... 51

2.4.1 Chức năng ..................................................................................................... 51
2.4.2 Một số khái niệm liên quan đến ListView .................................................... 51
BÀI 3 THỰC HÀNH MỘT SỐ CONTROL TRONG C# (BUỔI 1) ............................. 69
-1-



Đề cương môn học: Lập trình nâng cao với C#

3.1

Mục tiêu ............................................................................................................... 69

3.2

Nội dung thực hành .............................................................................................. 69

3.3

Bài tập tự làm ....................................................................................................... 72

BÀI 4 THẢO LUẬN VỀ CÁC CONTROL ................................................................... 73
4.1

Mục tiêu ............................................................................................................... 73

4.2

Tổ chức thực hiện................................................................................................. 73

4.3

Nội dung thảo luận ............................................................................................... 73

4.3.1 Bài thảo luận số 1 .......................................................................................... 73
4.3.2 Bài thảo luận số 2 .......................................................................................... 74
4.3.3 Bài thảo luận số 3 .......................................................................................... 75

BÀI 5 THỰC HÀNH MỘT SỐ CONTROL TRONG C# (BUỔI 2) ............................. 76
5.1

Mục tiêu ............................................................................................................... 76

5.2

Nội dung thực hành .............................................................................................. 76

5.3

Bài tập tự làm ....................................................................................................... 80

BÀI 6 USER CONTROL................................................................................................ 81
6.1

User Control (UC) ................................................................................................ 81

6.1.1 Khái niệm ...................................................................................................... 81
6.1.2 Xây dụng UC ................................................................................................. 81
BÀI 7 THỰC HÀNH USER CONTROL ....................................................................... 82
7.1

Mục tiêu ............................................................................................................... 82

7.2

Nội dung thực hành .............................................................................................. 82

7.3


Bài tập tự làm ....................................................................................................... 85

BÀI 8 THAO TÁC VỚI FILE XML VÀ REGISTRY ................................................... 86
8.1

Thao tác với file XML ......................................................................................... 86

8.1.1 XML là gì? .................................................................................................... 86
8.1.2 Cú pháp XML................................................................................................ 86
-2-


Đề cương môn học: Lập trình nâng cao với C#

8.1.3 Đọc/ghi file XML trong C#........................................................................... 87
8.2

Thao tác với Registry ........................................................................................... 90

8.2.1 Giới thiệu về Registry ................................................................................... 90
8.2.2 Cấu trúc Registry của Windows .................................................................... 91
8.2.3 Thao tác với Registry trong C# ..................................................................... 92
BÀI 9 THỰC HÀNH THAO TÁC VỚI FILE XML VÀ REGISTRY .......................... 94
9.1

Mục tiêu ............................................................................................................... 94

9.2


Nội dung thực hành .............................................................................................. 94

9.3

Bài tập tự làm ....................................................................................................... 98

BÀI 10 THẢO LUẬN VỀ USER CONTROL VÀ CÁC THAO TÁC VỚI XML,
REGISTRY ...................................................................................................................... 100
10.1

Mục tiêu .......................................................................................................... 100

10.2

Tổ chức thực hiện ........................................................................................... 100

10.3

Nội dung thảo luận ......................................................................................... 100

10.3.1

Bài thảo luận số 1..................................................................................... 100

10.3.2

Bài thảo luận số 2..................................................................................... 100

10.3.3


Bài thảo luận số 3..................................................................................... 101

BÀI 11

GIỚI THIỆU ADO.NET ................................................................................ 102

11.1

Giới thiệu ADO.NET...................................................................................... 102

11.2

Các mô hình thao tác với CSDL ..................................................................... 103

11.3

Kết nối đến nguồn dữ liệu bằng đối tượng Connection ................................. 104

11.3.1

Chức năng ................................................................................................ 104

11.3.2

Khai báo ................................................................................................... 104

11.3.3

Kết nối tới Cơ sở dữ liệu.......................................................................... 105


11.4

Thực thi câu lệnh SQL bằng đối tượng Command ........................................ 107

11.4.1

Chức năng ................................................................................................ 107

11.4.2

Khai báo ................................................................................................... 107
-3-


Đề cương môn học: Lập trình nâng cao với C#

11.4.3

Các phương thức thường của đối tượng Command ................................. 108

11.4.4

Sử dụng đối tượng Command .................................................................. 109

11.5

Truy vấn và nhận về dữ liệu với DataReader ................................................. 112

11.5.1


Chức năng ................................................................................................ 112

11.5.2

Khai báo ................................................................................................... 112

11.5.3

Sử dụng đối tượng DataReader ................................................................ 113

BÀI 12 THỰC HÀNH ĐỐI TƯỢNG CONNECTION, COMMAND VÀ
DATAREADER .............................................................................................................. 115
12.1

Mục tiêu .......................................................................................................... 115

12.2

Nội dung thực hành ........................................................................................ 115

12.3

Bài tập tự làm.................................................................................................. 119

BÀI 13

ĐỐI TƯỢNG DATAADAPTER, DATASET VÀ PARAMETER ............... 122

13.1


Cập nhật và truy vấn dữ liệu với đối tượng DataAdapter .............................. 122

13.1.1

Chức năng ................................................................................................ 122

13.1.2

Khai báo đối tượng DataAdapter ............................................................. 122

13.1.3

Sử dụng đối tượng DataAdapter .............................................................. 122

13.2

Mô hình DataSet ............................................................................................. 124

13.2.1

Chức năng ................................................................................................ 124

13.2.2

Khai báo ................................................................................................... 124

13.2.3

Mô hình DataSet ...................................................................................... 124


13.3

Đối tượng Parameter ....................................................................................... 125

13.3.1

Chức năng ................................................................................................ 125

13.3.2

Sử dụng .................................................................................................... 125

BÀI 14 THỰC HÀNH ĐỐI TƯỢNG DATAADAPTER, DATASET VÀ
PARAMETER ................................................................................................................. 128
14.1

Mục tiêu .......................................................................................................... 128

14.2

Nội dung thực hành ........................................................................................ 128
-4-


Đề cương môn học: Lập trình nâng cao với C#

14.3

Bài tập tự làm.................................................................................................. 135


BÀI 15

THẢO LUẬN VỀ CÁC ĐỐI TƯỢNG CỦA ADO ....................................... 137

15.1

Mục tiêu .......................................................................................................... 137

15.2

Tổ chức thực hiện ........................................................................................... 137

15.3

Nội dung thảo luận ......................................................................................... 137

15.3.1

Bài thảo luận số 1..................................................................................... 137

15.3.2

Bài thảo luận số 2..................................................................................... 138

15.3.3

Bài thảo luận số 3..................................................................................... 139

BÀI 16


SẮP XẾP VÀ TÌM KIẾM DỮ LIỆU VỚI DATAVIEW, LINQ .................. 140

16.1

Ràng buộc dữ liệu với các điều khiển ............................................................ 140

16.1.1

Mục đích .................................................................................................. 140

16.1.2

Sử dụng .................................................................................................... 140

16.2

Sử dụng DataView trong sắp xếp và tìm kiếm dữ liệu................................... 140

16.2.1

Chức năng ................................................................................................ 140

16.2.2

Một số thuộc tính thường dùng................................................................ 141

16.2.3

Một số Phương thức của đối tượng DataView ........................................ 141


16.2.4

Ví dụ sử dụng đối tượng DataView ......................................................... 141

16.3

LINQ ............................................................................................................... 143

16.3.1

Giới thiệu về LINQ .................................................................................. 143

16.3.2

Các thành phần của LINQ ....................................................................... 143

16.3.3

LINQ vs ADO.NET ................................................................................. 147

16.3.4

Cài đặt LinQ............................................................................................. 147

16.3.5

Sử dụng LinQ........................................................................................... 149

BÀI 17


THỰC HÀNH SỬ DỤNG DATAVIEW VÀ LINQ ...................................... 152

17.1

Mục tiêu .......................................................................................................... 152

17.2

Nội dung thực hành ........................................................................................ 152
-5-


Đề cương môn học: Lập trình nâng cao với C#

17.3

Bài tập tự làm.................................................................................................. 154

BÀI 18

THẢO LUẬN VỀ LINQ ................................................................................ 157

18.1

Mục tiêu .......................................................................................................... 157

18.2

Tổ chức thực hiện ........................................................................................... 157


18.3

Nội dung thảo luận.......................................................................................... 157

18.3.1

Bài thảo luận số 1 ..................................................................................... 157

18.3.2

Bài thảo luận số 2 ..................................................................................... 158

BÀI 19

THIẾT KẾ REPORT VỚI CRYSTAL REPORT .......................................... 159

19.1

Thiết kế báo cáo với Crystal Report ............................................................... 159

19.2

Nạp và hiển thị Report trong chương trình ..................................................... 167

19.3

Thiết kế Report động ...................................................................................... 167

19.3.1


Mục đích .................................................................................................. 167

19.3.2

Sử dụng .................................................................................................... 168

BÀI 20

THỰC HÀNH THIẾT KẾ REPORT VỚI CRYSTAL REPORT.................. 171

20.1

Mục tiêu .......................................................................................................... 171

20.2

Nội dung thực hành ........................................................................................ 171

20.3

Bài tập tự làm.................................................................................................. 173

-6-


Đề cương môn học: Lập trình nâng cao với C#

BÀI 1
C#


TỔNG QUAN VỀ .NET VÀ CÁC CONTROL TRONG

1.1 Môi trường thực thi ngôn ngữ chung – CLR
Như đã đề cập thì CLR thực hiện quản lý bộ nhớ, quản lý thực thi tiểu trình, thực
thi mã nguồn, xác nhận mã nguồn an toàn, biên bịch và các dịch vụ hệ thống khác.
Những đặc tính trên là nền tảng cơ bản cho những mã nguồn được quản lý chạy trên
CLR.
Do chú trọng đến bảo mật, những thành phần được quản lý được cấp
những mức độ quyền hạn khác nhau, phụ thuộc vào nhiều yếu tố nguyên thủy của chúng
như: liên quan đến Internet, hệ thống mạng trong nhà máy, hay một máy tính cục bộ.
Điều này có nghĩa rằng, một thành phần được quản lý có thể có hay không có quyền thực
hiện một thao tác truy cập tập tin, thao tác truy cập registry, hay các chức năng nhạy cảm
khác.
CLR thúc đẩy việc mã nguồn thực hiện việc truy cập được bảo mật. Ví dụ, người
sử dụng giới hạn rằng việc thực thi nhúng vào trong một trang web có thể chạy được hoạt
hình trên màn hình hay hát một bản nhạc, nhưng không thể truy cập được dữ liệu riêng
tư, tập tin hệ thống, hay truy cập mạng. Do đó, đặc tính bảo mật của CLR cho phép
những phần mềm đóng gói trên Inernet có nhiều đặc tính mà không ảnh hưởng đến việc
bảo mật hệ thống.
CLR còn thúc đẩy cho mã nguồn được thực thi mạnh mẽ hơn bằng việc thực thi
mã nguồn chính xác và sự xác nhận mã nguồn. Nền tảng của việc thực hiện này
là Common Type System (CTS). CTS đảm bảo rằng những mã nguồn được quản lý
thì được tự mô tả (self- describing). Sự khác nhau giữa Microsoft và các trình biên dịch
ngôn ngữ của hãng thứ ba là việc tạo ra các mã nguồn được quản lý có thể thích hợp với
CTS. Điều này thì mã nguồn được quản lý có thể sử dụng những kiểu được quản lý khác
và những thể hiện, trong khi thúc đẩy nghiêm ngặt việc sử dụng kiểu dữ liệu chính xác và
an toàn.
Thêm vào đó, môi trường được quản lý của runtime sẽ thực hiện việc tự động xử
lý layout của đối tượng và quản lý những tham chiếu đến đối tượng, giải phóng chúng khi
chúng không còn được sử dụng nữa. Việc quản lý bộ nhớ tự động này còn giải quyết hai

lỗi chung của ứng dụng: thiếu bộ nhớ và tham chiếu bộ nhớ không hợp lệ.
-7-


Đề cương môn học: Lập trình nâng cao với C#

Trong khi runtime được thiết kế cho những phần mềm của tương lai, nó cũng hỗ
trợ cho phân mềm ngày nay và trước đây. Khả năng hoạt động qua lại giữa mã nguồn
được quản lý và mã nguồn không được quản lý cho phép người phát triển tiếp tục sử
dụng những thành phần cần thiết của COM và DLL.
Rutime được thiết kế để cải tiến hiệu suất thực hiện. Mặc dù CLR cung cấp nhiều
các tiêu chuẩn dịch vụ runtime, nhưng mã nguồn được quản lý không bao giờ được dịch.
Có một đặc tính gọi là Just-in-Time (JIT) biên dịch tất cả những mã nguồn được quản lý
vào trong ngôn ngữ máy của hệ thống vào lúc mà nó được thực thi. Khi đó, trình
quản lý bộ nhớ xóa bỏ những phân mảnh bộ nhớ nếu có thể được và gia tăng tham
chiếu bộ nhớ cục bộ, và kết quả gia tăng hiệu quả thực thi.
1.2 Ngôn ngữ trung gian - IL
Như chúng ta đã biết, Intermediate Language hoạt động như là bản chất của .NET
Framework. Là lập trình viên C#, chúng ta nên biết rằng mã C# sẽ luôn được dịch sang
Intermediate Language trước khi nó được thực thi (thật vậy, trình biên dịch C# chỉ dịch
sang mã có quản). Chúng ta hãy cùng khám phá các tính năng chính của IL, bất kì ngôn
ngữ nào hướng .NET cũng sẽ hỗ trợ các đặc tính chính của IL.
▪ Sau đây là những đặc tính chính của Intermediate Language:
▪ Hướng đối tượng và dùng interfaces
▪ Sự tách biệt giữa kiểu giá trị và kiểu tham chiếu
▪ Định kiểu mạnh
▪ Quản lỗi thông qua các ngoại lệ
▪ Sự dụng các thuộc tính

-8-



Đề cương môn học: Lập trình nâng cao với C#

1.3 Giới thiệu về .Net Framework

.NET Framework là một platform mới làm đơn giản việc phát triển ứng dụng trong
môi trường phân tán của Internet. .NET Framework được thiết kế đầy đủ để đáp ứng theo
quan điểm sau:
▪ Để cung cấp một môi trường lập trình hướng đối tượng vững chắc,
trong đó mã nguồn đối tượng được lưu trữ và thực thi một cách cục bộ.
Thực thi cục bộ nhưng được phân tán trên Internet, hoặc thực thi từ xa.
▪ Để cung cấp một môi trường thực thi mã nguồn mà tối thiểu được việc đóng
gói phần mềm và sự tranh chấp về phiên bản.
▪ Để cung cấp một môi trường thực thi mã nguồn mà đảm bảo việc thực thi an
toàn mã nguồn, bao gồm cả việc mã nguồn được tạo bởi hãng thứ ba hay bất
cứ hãng nào mà tuân thủ theo kiến trúc .NET.
▪ Để cung cấp một môi trường thực thi mã nguồn mà loại bỏ được những lỗi
thực hiện các script hay môi trường thông dịch.
▪ Để làm cho những người phát triển có kinh nghiệm vững chắc có thể nắm
vững nhiều kiểu ứng dụng khác nhau. Như là từ những ứng dụng trên nền
Windows đến những ứng dụng dựa trên web.
Để xây dựng tất cả các thông tin dựa triên tiêu chuẩn công nghiệp để đảm bảo rằng
mã nguồn trên .NET có thể tích hợp với bất cứ mã nguồn khác.

-9-


Đề cương môn học: Lập trình nâng cao với C#


1.4 Tạo một ứng dụng Windows form
Bước 1: Khởi động VS2008 và chọn Fille  New Project …

Bước 2: Chọn Ứng dụng dạng Windows Forms Application, chọn nơi lữu trữ
Project (xem hình) nhấn OK.

1.5 Lớp Control
C# (các công cụ của bộ VS nói riêng) bao gồm một tập các điều khiển được MS
xây dựng sẵn. Một số điều khiển được hiển thị trong công cụ Toolbox của VS.

- 10 -


Đề cương môn học: Lập trình nâng cao với C#

Ngoài ra để lấy các điều khiển chưa được hiển thị trên công cụ Toolbox chúng ta
có thể lấy ra bằng cách: Tools  Choose Toolbox Items…

- 11 -


Đề cương môn học: Lập trình nâng cao với C#

1.6 Form
1.6.1 Chức năng
Form (hay còn gọi điều khiển Form) dùng để chứa các điều khiển khác (Buttons,
Label…)
1.6.2 Một số thuộc tính thường dùng
Tên


Ý nghĩa

Name

Tên của Form. Trong một Project tên của các Form phải
khác nhau.

AcceptButton

Giá trị mà thuộc tính này nhận là tên của một Button trên
Form (Nếu Form có chứa button). Khi đó nếu bạn nhấn
phím Enter thì sự kiện Click của Button mà bạn chọn
được thực thi mà không cần nhấn chuột vào Button đó.

Autosize

Nhận một trong hai giá trị True hay False
- True: Không cho phép thay đổi kích thước Form mà che
đi các điều khiển khác chứa trên Form
- False: Ngược lại

- 12 -


Đề cương môn học: Lập trình nâng cao với C#

AutoSizeMode

Cho phép thay đổi kích thước của Form hay không? (Khi
di chuyển chuột vào các mép của Form mà hiện nên biểu

tượng ↔ là cho phép). Và nhận một trong hai giá trị
-

GrowOnly: Cho phép

-

và GrowAndShrink: Không cho phép

BackColor

Chọn màu nền cho Form

BackGroundImage

Chọn ảnh làm nền cho Form

CancelButton

Giá trị mà thuộc tính này nhận là tên của một Button trên
Form (Nếu Form có chứa button). Khi đó nếu bạn nhấn
phím ESC thì sự kiện Click của Button mà bạn chọn
được thực thi mà không cần nhấn chuột vào Button đó
(tương tự như thuộc tính AcceptButton ).

ControlBox

Nhận một trong hai giá trị True hay False
-


True: Cho phép các các nút: MaximizeBox,
MinimizeBox, Close trên Titlebar xuất hiện

-

False: Không Cho phép các các nút: MaximizeBox,
MinimizeBox, Close trên Titlebar xuất hiện (Khi đó
các thuộc tính MaximizeBox, MinimizeBox của Form
cũng mất đi)

Font

Chọn kiểu Font chữ cho Form (Khi đó tất cả các điều
khiển được thêm vào Form sẽ có thuộc tính Font giống
như thuộc tính Font của Form)

ForeColor

Tương tự như thuộc tính Font nhưng áp dụng đối với màu
chữ

FormBorderStyle

Chọn Style cho Form (Có 7 lựa chọn khác nhau).

HelpButton

Nhận một trong hai giá trị True hay False.
-


True: Cho phép xuất hiện Buton có dấu ? trên Titlebar
- 13 -


Đề cương môn học: Lập trình nâng cao với C#

(Với điều kiện: hai thuộc tính MaximizeBox,
MaximizeBox phải đặt giá trị là False)
-

False: Ngược lại

→ Thuộc tính này sẽ hay đi kèm với điều khiển
HelpProvider về sau
Icon

Chọn một Icon (có đuôi mở rộng là .ico) trên máy tính
của bạn thay cho Icon mặc định của Form mà VS tạo ra

KeyPreview

Nhận một trong hai giá trị True hay False
-

True: Cho phép các sự kiện về bàn phím của Form
(KeyUp, KeyDown, KeyPress… của Form) có hiệu
lực.

MaximizeBox


False: Ngược lại

Nhận một trong hai giá trị True hay False
-

True: Cho phép nút MaximizeBox trên Titlebar có
hiệu lực

-

False: Ngược lại

MaximizeBox

Tương tự như thuộc tính MaximizeBox

Opacity

Độ trong suốt của Form

ShowIcon

Nhận một trong hai giá trị True hay False

ShowInTaskbar

StartPosition

-


True: Cho phép xuất hiện Icon của Form

-

False: Không cho phép xuất hiện Icon của Form

Nhận một trong hai giá trị True hay False
-

True: Cho phép hiện Form dưới khay Taskbar

-

False: Ngược lại

Vị trí hiển thị của Form so với màn hình hệ thống hay
Form cha (5 lựa chọn khác nhau)

- 14 -


Đề cương môn học: Lập trình nâng cao với C#

Text

Giá trị Text của Form

WindowState

Trạng thái hiển thị của Form khi chạy (Khi bạn nhấn vào

nút Run của VS) (Có 3 lựa chọn khác nhau: Ẩn dưới
khay Taskbar, mở rộng hết màn hình…).

1.6.3 Một số sự kiện thường dùng
Tên

Ý nghĩa

AutoSizeChanged

Xảy ra khi thuộc tính Autosize của Form chuyển từ True
→ False hay ngược lại là False → True.

BackColorChanged

Xảy ra khi thuộc tính BackColor của Form thay đổi

Click

Xảy ra khi người dùng Click chuột vào vùng làm việc
thuộc Form

ControlAdded

Xảy ra khi một điều khiển được Add vào Form

ControlRemoved

Xảy ra khi một điều khiển bị xóa khỏi Form


CursorChanged

Xảy ra khi thuộc tính Cursor của Form thay đổi

DoubleClick

Xảy ra khi người dùng DoubleClick vào vùng làm việc
của Form

FontChanged

Xảy ra khi thuộc tính Font của Form có sự thay đổi

ForeColorChanged

Xảy ra khi thuộc tính ForeColor của Form có sự thay đổi

FormClosed

Xảy ra khi Form đã đóng (Nhấn vào nút X màu đỏ trên
Titlebar)

FormClosing

Xảy ra khi Form đang đóng (2 sự kiện FormClosed và
FormClosing thường dùng trong lập trình CSDL: khi xảy
ra sự kiện này thì đóng kết nối CSDL)

KeyDown


Xảy ra khi người dùng nhấn một phím hay một tố hợp
- 15 -


Đề cương môn học: Lập trình nâng cao với C#

phím (tùy thuộc vào xử lý của chúng ta)
KeyPress

Xảy ra khi người dùng nhấn một phím

KeyUp

Xảy ra khi người dùng nhả một phím.

MouseClick

Xảy ra khi người dùng nhấn chuột (một trong 3 lựa chọn:
Trái, giữa, phải)

MouseDoubleClick

Xảy ra khi người dùng DoubleClick chuột vào một vùng
làm việc của Form(một trong 3 lựa chọn: Trái, giữa, phải)

MouseDown

Xảy ra khi người dùng nhấn chuột

MouseHover


Xảy ra khi người dùng di chuyển vào các vùng làm việc
Form

MouseLeave

Xảy ra khi di chuyển chuột ra khỏi vùng làm việc của
Form

MouseMove

Xảy ra khi di chuyển chuột trên một vùng làm việc thuộc
Form (nếu Form có chứa một điều khiển nào đó, khi di
chuyển chuột trên điều khiển này thì không xảy ra sự kiện
MouseMove của Form).

MouseUp

Xảy ra khi người dùng nhả nhấn chuột (có thể là chuột
trái, chuột phải, chuột giữa - chuột cuộn)

Move

Xảy ra khi di chuyển Form (có sự thay đổi vị trí của
Form)

StyleChanged

Xảy ra khi thuộc tính FormBorderStyle của Form thay
đổi


TextChanged

Xảy ra khi thuộc tính Text của Form thay đổi.

1.6.4 Minh họa

- 16 -


Đề cương môn học: Lập trình nâng cao với C#

1.6.4.1 Sự kiện FormClosed
//Sự kiện FormClosed - Sự kiện này được gọi khi Form đã đóng
private void frmForm_FormClosed(object sender, FormClosedEventArgs e)
{
MessageBox.Show("Sự
kiện
FormClosed
được
"FormClosed",MessageBoxButtons.OK,MessageBoxIcon.Information);

gọi",

}
1.6.4.2 Sự kiện FormClosing
//Sự kiện FormClosing xảy ra khi Form đang đóng
private void frmForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("Bạn có muốn đóng Form lại hay không?",

"FormClosing",
MessageBoxButtons.YesNo,
DialogResult.Yes)

MessageBoxIcon.Information)

==

e.Cancel = false;// Đóng Form lại
else
e.Cancel = true;//Không đóng Form nữa
}
1.6.4.3 Sự kiện KeyPress
//Sự kiện KeyPress
private void frmForm_KeyPress(object sender, KeyPressEventArgs e)
{
//Nếu không chỉ rõ phím nào được nhấn thì khi nhấn bất cứ phím nào
sự kiện KeyPress của Form đều xảy ra
//Chỉ rõ phím nào được nhấn thì phát sinh sự kiện KeyPress làm như
sau
if (e.KeyChar = 'a')
MessageBox.Show("Sự kiện KeyPress xảy ra khi bạn nhấn phím
a");

- 17 -


Đề cương môn học: Lập trình nâng cao với C#

}

//Sự kiện KeyUp tương tự như sự kiện KeyPress
//Sự kiện KeyDown xảy ra khi nhấn một phím hay tổ hợp phím
1.6.4.4 Sự kiện KeyDown
private void frmForm_KeyDown(object sender, KeyEventArgs e)
{
//khi nhấn một phím bất kì trên bàn phím thì sự kiện KeyPress
được gọi
//Đồng thời sự kiện KeyDown cũng được gọi → KeyPress là
trường hợp riêng của KeyDown
//Áp dụng: Nhấn một tổ hợp phím thì sự kiện KeyDown mới
được gọi
//Như Windows Media: Nhấn Ctrl+F để di chuyển bài tiếp theo
if (e.KeyCode == Keys.F && e.Modifiers == Keys.Control)
MessageBox.Show("Sự kiện KeyDown được gọi khi bạn
nhấn Ctrl + F");
}
1.6.4.5 Sự kiện MouseClick
//Sự kiện MouseClick
private void frmForm_MouseClick(object sender, MouseEventArgs e)
{
//Nếu bạn không muốn biết người dùng nhấn chuột TRÁI hay PHẢI
hay GIỮA thì khi nhấn bất kì
//Chuột nào cũng xảy ra sự kiện MouseClick của Form
//Còn nếu bạn muốn bắt được sự kiện người dùng nhấn chuột TRÁI,
PHẢI, hay GIỮA làm thế này
if (e.Button == MouseButtons.Left)
MessageBox.Show("Sự kiện MouseClick xảy ra khi bạn Click
chuột TRÁI");
else if (e.Button==MouseButtons.Middle)
MessageBox.Show("Sự kiện MouseClick xảy ra khi bạn Click

- 18 -


Đề cương môn học: Lập trình nâng cao với C#

chuột GIỮA");
else if (e.Button==MouseButtons.Right)
MessageBox.Show("Sự kiện MouseClick xảy ra khi bạn Click
chuột PHẢI");
}
//Các sự kiện MouseDoubleClick, MouseDown, MouseUp... Xử lý
tương tự

- 19 -


Đề cương môn học: Lập trình nâng cao với C#

BÀI 2

MỘT SỐ CONTROL TRONG C#

2.1 Textbox
Chức năng

2.1.1

Điều khiển Textbox cho phép bạn nhập và hiển thị dữ liệu.
2.1.2 Một số thuộc tính thường dùng
Tên


Ý nghĩa

AcceptsTab

Nhận một trong hai giá trị True hay False
-

True: Khi nhấn phím Tab thì con trỏ
(Focus) chỉ di chuyển bên trong Textbox
(Với điều kiện thuộc tính Multiline=True).

-

False: Khi nhấn Tab thì Focus di chuyển
qua lại giữa các điều khiển trên Form

→ Thuộc tính này hay đặt bằng True trong các
ứng dụng soạn thảo văn bản
Anchor

Vị trí neo đậu của Textbox trên Form

AutoCompleteCustomSource

Ba thuộc tính này ý nghĩa tương tự như của

AutoCompleteMode

thuộc tính của điều khiển Combobox


AutoComplete Source
BackColor

Đặt mầu nền cho Textbox

BorderStyle

Chọn kiểu đường viền cho Textbox

ContextMenuStrip

Chọn Menu ngữ cảnh khi nhấn chuột phải vào
Textbox

Dock

Vị trí bám dính và điền đầy của Textbox với
Form

Font

Chọn kiểu Font chữ cho Textbox

- 20 -


Đề cương môn học: Lập trình nâng cao với C#

HideSelection


Nhận một trong hai giá trị True hay False
-

True: Không cho phép các thuộc tính:
SelectionStart…có hiệu lực.

MaxLenght

False: Ngược lại

Số lượng kí tự lớn nhất cho phép nhập vào
Textbox

Multiline

Nhận một trong hai giá trị True hay False
-

True: Cho phép nhập và hiển thị giá trị của
Textbox trên nhiều dòng (người dùng có
thể nhìn thấy toàn bộ giá trị Text của nó)

-

False: Cho phép nhập/hiển thị giá trị của
Textbox trên một dòng

PasswordChar


Hiển thị giá trị của Textbox dưới dạng các kí
tự mà bạn thay thế (kí tự do người dùng nhập
vào: *, #...)

ReadOnly
ScrollBars

Cho phép hiển thị thanh trượt hay không? (Với
điều kiện thuộc tính Multiline=True mới nhìn
thấy thanh cuộn)

TabIndex
Visible

Cho phép Textbox hiển thị hay không?

CanUndo

Trả lại hai giá trị True/False.

Các thuộc tính SelectionText

-

True: có thể Undo lại được (như Word)

-

False: Ngược lại
o SelectedText

o SelectionStart
o SelectionLength
- 21 -


Đề cương môn học: Lập trình nâng cao với C#

o ……………….
Chú ý: Các điều khiển có rất nhiều thuộc tính giống nhau: Anchor, Dock, Font,
ForeColor, Enabled, Visible, TabIndex……Về ý nghĩa các thuộc tính này là giống nhau
với tất cả các điều khiển
2.1.2.1. Một số phương thức thường dùng
Tên

Ý nghĩa

AppendText

Nối một chuỗi (string) vào giá trị Text hiện có của
Textbox

Copy
Cut

Xử lý phần nội dung bôi đen (như Word)

Paste
Focus

Chuyển Focus (con trỏ) vào TextBox


Clear

Xóa toàn bộ Textbox

Select

Lấy ra một chuỗi trong Textbox (xem Code)

SelectAll

Lấy tất cả giá trị của Textbox

Undo

Xử lý Undo như Word

2.1.2.2. Một số sự kiện thường dùng
Tên

Ý nghĩa

KeyPress

Xảy ra khi người dùng nhấn phím trên bàn phím (tất
nhiên Textbox phải đang Focus – Áp dụng sự kiện
này để xử lý không cho phép nhập chữ vào
Textbox…)

MouseClick


Xảy ra khi người dùng Click chuột trên điều khiển

- 22 -


Đề cương môn học: Lập trình nâng cao với C#

Textbox
TextChanged

Xảy ra khi giá trị Text của Texbox (hay gọi giá trị
Textbox) thay đổi

2.1.2.3. Minh họa

- 23 -


Đề cương môn học: Lập trình nâng cao với C#

2.1.1.1.1. Minh họa thuộc tính Text của Textbox
private void btTextbox_Click(object sender, EventArgs e)
{
//Trước khi gán thuộc tính text
MessageBox.Show("Giá trị textbox trước khi gán: "+ textBox1.Text);
//Gán giá trị Text
textBox1.Text = "Chào các bạn";
//Sau khi gán
MessageBox.Show("Giá trị textbox sau khi gán: " + textBox1.Text);

}

2.1.1.1.2. Minh họa thuộc tính SelectedText
private void btTextbox_Click(object sender, EventArgs e)
{
//Thuộc tính SelectedText lấy ra một chuỗi mà bạn bôi đen (Chọn)
//Bạn hãy bôi đen một vài từ trong Textbox sau đó Click vào Button
này sẽ hiển thị
//Message thông báo từ bạn chọn
string str = textBox1.SelectedText;
MessageBox.Show("Từ bạn vừa chọn (bôi đen) là: "+str);
}

2.1.1.1.3. Minh họa thuộc tính SelectionStart và SelectionLength
private void btTextbox_Click(object sender, EventArgs e)
{
//Thuộc tính này dùng trong tìm kiếm rất nhiều
//Thuộc tính SelectionStart: Ví trí bắt đầu Select
//Thuộc tính SelectionLength: Chiều dài của vùng lựa chọn
//Chú ý: Đặt thuộc tính HideSelection=False
//Ví dụ: Tìm kiếm xem giá trị của Textbox có từ nào là chào hay không.
- 24 -


Đề cương môn học: Lập trình nâng cao với C#

Nếu có thì nó tự Bôi đen từ đó
string str = "chào";
int i;
i = textBox1.Text.LastIndexOf(str);

if (i >= 0)
{
textBox1.SelectionStart = i;
textBox1.SelectionLength = str.Length;
}
}
2.1.1.1.4. Minh họa thuộc tính CanUndo và phương thức Undo
private void btTextbox_Click(object sender, EventArgs e)
{
//Nếu có thể Undo (có nghĩa: Bạn phải gõ văn bản vào Textbox rồi sửa,
xóa...)
//Mới có thể Undo lại được
if (textBox1.CanUndo)
textBox1.Undo();
}

2.1.1.1.5. Minh họa phương thức Select
private void btTextbox_Click(object sender, EventArgs e)
{
//Cú pháp chung: txtNoiDung.Select(Start, Length);
//Mục đích để lấy về một chuỗi từ từ vị trí nào và chiều dài của chuỗi dược
chọn (tất nhiên: bôi đen vùng này).
//-> Phương thức này tương đương với sử dụng 2 thuộc tính SelectionStart
và SelectionLength
//Ví dụ:
txtNoiDung.Select(10, 5);
- 25 -



×