Tải bản đầy đủ (.ppt) (33 trang)

Tìm hiểu về user control và delegate, event trong NET

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 (156.49 KB, 33 trang )


Tìm hiểu về User Control và
Delegate, Event trong .NET
ĐẶNG BÌNH PHƯƠNGGVHD:

Nội dung trình bày

Giới thiệu về User Control

Tạo User Control trong C#

Thêm các Property cho Control

Thêm các hàm (thường & xử lý sự kiện)

Tìm hiểu và sử dụng Delegate và Event

Kết luận

Nội dung trình bày

Giới thiệu về User Control

Tạo User Control trong C#

Thêm các Property cho Control

Thêm các hàm (thường & xử lý sự kiện)

Tìm hiểu và sử dụng Delegate và Event


Kết luận


Ví dụ 1

Viết chương trình cho phép người sử dụng:

Nhập địa chỉ của nhà bao gồm:

Số nhà

Đường

Phường

Quận

Thành Phố

Mỗi khi người sử dụng nhập NCV vào đường thì
tự động đường chuyển sang chuỗi Nguyễn Cửu
Vân.
Giới thiệu về User Control


Ý tưởng?

Tạo một form có các label và 5 textbox cho phép
nhập: số nhà, đường, phường, quận, thành phố.


Viết hàm để xử lý cho sự kiện TextChanged của
textbox đường để mỗi khi người sử dụng nhập
chuỗi NCV thì tự động chuỗi Nguyễn Cửu Vân sẽ
được thay thế.
Giới thiệu về User Control


Ví dụ 2

Viết chương trình cho phép người sử dụng:

Nhập 3 địa chỉ của nhà bao gồm:

Số nhà

Đường

Phường

Quận

Thành Phố

Mỗi khi người sử dụng nhập chuỗi NCV vào
đường của địa chỉ nào thì tự động đường của địa
chỉ đó chuyển sang chuỗi Nguyễn Cửu Vân.
Giới thiệu về User Control


Ý tưởng?


Tạo một form có các label và 15 textbox cho phép
nhập: số nhà, đường, phường, quận, thành phố
cho 3 địa chỉ.

Viết 3 hàm giống nhau để xử lý cho 3 sự kiện
TextChanged của textbox đường để mỗi khi người
sử dụng nhập chuỗi NCV thì tự động chuỗi
Nguyễn Cửu Vân sẽ được thay thế.

“Hình như” công việc có vẻ nhàm chán và mất thời
gian!!!
Giới thiệu về User Control


Ý tưởng mới 

Nhóm các label và 5 textbox thể hiện số nhà,
đường, phường, quận, thành phố vào một lớp
(class) thành một control duy nhất có thể tái sử
dụng.

Viết code cho hàm xử lý sự kiện cho textbox
đường xử lý việc chuyển NCVNguyễn Cửu Vân

Mỗi khi có yêu cầu nhập số nhà, ta chỉ việc kéo nó
vào form.

Khái niệm User Control ra đời
Giới thiệu về User Control


Nội dung trình bày

Giới thiệu về User Control

Tạo User Control trong C#

Thêm các Property cho Control

Thêm các hàm (thường & xử lý sự kiện)

Tìm hiểu và sử dụng Delegate và Event

Kết luận


Tạo User Control

Mở Microsoft Visual Studio .NET 2003

Tạo một ứng dụng Windows Application
(thuộc danh sách Visual C# Projects) với
tên tùy ý (ví dụ: VD1)

Thêm User Control vào project bằng cách
chọn Project > User Control. Đặt tên User
Control đó (ví dụ: Diachi.cs)
Tạo User Control trong C#



Thêm các control (textbox và label) thể hiện số nhà,
đường, phường, quận, thành phố như sau:

Dịch project (Ctrl + Shift + B) và chọn lại Form1.

Ở cuối của toolbox trong tab Windows Form sẽ có
1 control mới được thêm vào có tên là Diachi. Kéo
Control đó vào form và chạy ứng dụng. (Hoặc kéo
file Diachi.cs có trong cây Solution Explorer vào
form)
Tạo User Control trong C#

-
Chạy thử ứng dụng.
Tạo User Control trong C#

-
Để ý, trong cửa số Properties của control
Diachi vừa mới thêm vào form, trừ các chỗ
cho ta đặt lại các property cho control như
những control thông thường (Name,
Location, Size…), không có chỗ nào cho ta
đặt giá trị cho số nhà, đường, phường, quận
và thành phố.
-
Làm sao để thêm các property cho control
Diachi cho phép ta chỉnh số nhà, đường,
quận, thành phố???
Tạo User Control trong C#


Nội dung trình bày

Giới thiệu về User Control

Tạo User Control trong C#

Thêm các Property cho Control

Thêm các hàm (thường & xử lý sự kiện)

Tìm hiểu và sử dụng Delegate và Event

Kết luận


Thêm các Property

Trong lớp Diachi (mở file Diachi.cs), thêm
vào các dòng code sau:

Thêm tương tự cho property đường,
phường, quận, thành phố
Thêm các Property cho UC
[Category ("Data"), Description("So nha cua dia chi")]
public string Sonha
{
get {return this.txtSonha.Text;}
set {this.txtSonha.Text = value;}
}


-
Trong cửa sổ Properties của control, đặt
các giá trị tương tự như sau thì lập tức bên
form cũng được cập nhật.
Thêm các Property cho UC

Nội dung trình bày

Giới thiệu về User Control

Tạo User Control trong C#

Thêm các Property cho Control

Thêm các hàm (thường & xử lý sự kiện)

Tìm hiểu và sử dụng Delegate và Event

Kết luận


Thêm các hàm (phương thức)

Muốn thêm hàm có tên Lay_Diachi để lấy địa chỉ
đầy đủ, ta thêm các dòng sau vào lớp Diachi:
Thêm các phương thức cho UC
public string Lay_Diachi()
{
string strDiachi = Sonha;
strDiachi += " duong " + Duong;

strDiachi += " phuong " + Phuong;
strDiachi += " quan " + Quan;
strDiachi += " thanh pho " + Thanhpho;
return strDiachi;
}


Thêm các hàm xử lý sự kiện

Thêm hàm xử lý sự kiện cho textbox
txtDuong để mỗi khi người sử dụng nhập
chuỗi “NCV” vào tên đường thì lập tức tên
đường chuyển thành “Nguyễn Cửu Vân”:

Chọn cửa sổ thiết kế (Design) của control
Diachi.

Chọn textbox txtDuong
Thêm các phương thức cho UC


Trong cửa sổ Properties (của textbox này), mục
Events, ta nhấp đúp vào chỗ sự kiện
TextChanged để bổ sung hàm xử lý cho sự kiện
này (hoặc gõ một tên hàm theo ý của mình).
Thêm các phương thức cho UC


Viết code cho sụ kiện như sau:


Chạy thử chương trình
Thêm các phương thức cho UC
private void txtDuong_TextChanged(object sender, System.EventArgs e)
{
if (txtDuong.Text=="NCV")
txtDuong.Text = "Nguyen Cuu Van";
else if (txtDuong.Text=="DBP")
txtDuong.Text = “Dien Bien Phu”;
}

Thêm các phương thức cho UC

Vấn đề nảy sinh:

Giả sử ta bổ sung thêm 1 hay nhiều User
Control Diachi nữa. Vấn đề đặt ra là làm sao
để khi ta gõ nội dung vào User Control Diachi
đầu tiên thì tất cả các User Control Diachi
còn lại cũng đồng loạt thay đổi theo???

Trong lúc lập trình (viết code cho UC) ta chưa
biết phương thức nào của đối tượng nào sẽ
được gọi???

Khái niệm Delegate và Event.

Nội dung trình bày

Giới thiệu về User Control


Tạo User Control trong C#

Thêm các Property cho Control

Thêm các hàm (thường & xử lý sự kiện)

Tìm hiểu và sử dụng Delegate và Event

Kết luận


Khái niệm Delegate:

Có nghĩa là ủy thác, ủy quyền.

Trong lập trình, đôi lúc ta gặp tình huống
phải thực thi một hành động nào đó, nhưng
lại không biết sẽ gọi phương thức nào của
đối tượng nào.

Chương trình sẽ làm việc với đối tượng ủy
thác, ủy quyền.
Delegate và Event


Khái niệm Event:

Có nghĩa là sự kiện.

Ví dụ như sự kiện TextChanged,

OnMouseMove, OnMouseUp,
OnMouseDown…

Ví dụ:

Thêm vào form thêm 2 User Control (UC).
Cập nhật chương trình để khi ta gõ nội dung
vào UC Diachi đầu tiên thì tất cả các UC
Diachi còn lại cũng đồng loạt thay đổi theo.
Delegate và Event

×