LẬP TRÌNH TRÊN MÔI TRƯỜNG WINDOWS *** XỬ LÝ CONTROL Phạm Minh Tuấn pmtuan@fit.hcmuns.edu.vn... Nội dung trình bày Giới thiệu Tạo Control Delegate và Event... 03/23/10 Khoa CNTT - ĐH
Trang 1LẬP TRÌNH TRÊN
MÔI TRƯỜNG WINDOWS
***
XỬ LÝ CONTROL
Phạm Minh Tuấn
pmtuan@fit.hcmuns.edu.vn
Trang 2Nội dung trình bày
Giới thiệu
Tạo Control
Delegate và Event
Trang 303/23/10 Khoa CNTT - ĐH KHTN 3
Giới thiệu
Có 3 loại Control
Extended Control
Ví dụ: một Button mới có background thay đổi khi di chuyển chuột đến nó
Composite Control
Ví dụ: một control cho phép nhập vào địa chỉ cá nhân gồm số nhà, tên đường, phường, quận, thành phố…
Custom Control
Ví dụ: một control thể hiện đồng hồ máy tính
Trang 4Tạo Control
Tạo Extended Control
Kế thừa từ lớp đối tượng tương ứng
Bổ sung hoặc override các phương thức cần thiết
Tạo Custom Control
Kế thừa từ lớp Control
Người viết chịu trách nhiệm về hình dạng và cách ứng
xử của control
Tạo Composite Control
Trang 503/23/10 Khoa CNTT - ĐH KHTN 5
Tạo Control
Tạo Extended Control
class MyButton:System.Windows.Forms.Button
{
…
public MyButton()
{
…
this.MouseEnter += new EventHandler(MyButton_MouseEnter);
this.MouseLeave += new EventHandler(MyButton_MouseLeave);
}
void MyButton_MouseLeave(object sender, EventArgs e)
{
Image image = Image.FromFile(normalImageFile);
if (image != null)
this.BackgroundImage = image;
}
void MyButton_MouseEnter(object sender, EventArgs e)
{
Image image = Image.FromFile(highlightImageFile);
if (image != null)
this.BackgroundImage = image;
}
}
Trang 6Tạo Control
Tạo Custom Control
class ClockControl:System.Windows.Forms.Control
{
…
public ClockControl() {
………}
void timer1_Tick(object sender, EventArgs e)
{
this.Invalidate();
}
void ClockControl_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
string str = "";
str = DateTime.Now.Hour.ToString() +":"
Trang 703/23/10 Khoa CNTT - ĐH KHTN 7
Tạo Control
Tạo Composite Control
> User Control Đặt tên User Control đó (ví dụ: Diachi.cs)
phường, quận, thành phố như sau:
thêm vào có tên là Diachi Kéo Control đó vào form và xử lý như mọi control bình thường khác.
Trang 8Tạo Control
Thêm các property cho control
public string Sonha
{
get {return this.txtSonha.Text;}
set {this.txtSonha.Text = value;}
}
Thêm các sự kiện cho control
Sử dụng delegate và event
Trang 903/23/10 Khoa CNTT - ĐH KHTN 9
Delegate và Event
Delegate
Ngữ nghĩa tương tự con trỏ hàm
Khai báo
public delegate void AddressChangedHandler(string address);
Event
Khai báo
public event AddressChangedHandler AddressChanged;
“Phát” sự kiện
if (AddressChanged != null) AddressChanged(str);