LẬP TRÌNH TRÊN MÔI TRƯỜNG WINDOWS *** XỬ LÝ CONTROL... 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ó Comp
Trang 1LẬP TRÌNH TRÊN
MÔI TRƯỜNG WINDOWS
***
XỬ LÝ CONTROL
Trang 2Nội dung trình bày
Giới thiệu
Tạo Control
Delegate và Event
Trang 3Giớ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
Kế thừa từ lớp UserControl
Xác định các control con của nó
Bổ sung hoặc override lại các phương thức cần thiết
Trang 5Tạ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() +":"
+ DateTime.Now.Minute.ToString()+":"
+ DateTime.Now.Second.ToString();
e.Graphics.DrawString(str, this.Font, new SolidBrush(this.ForeColor), 0, 0); }
}
Trang 7Tạo Control
Thêm User Control vào project bằng cách chọn Project > Add
> User Control Đặt tên User Control đó (ví dụ: Diachi.cs)
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.
Trong tab Components của toolbox sẽ có 1 control mới được 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 9Delegate 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);
Trang 1012/30/15