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

LẬP TRÌNH TRÊN MÔI TRƯỜNG WINDOWS docx

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 (75.55 KB, 10 trang )

LẬP TRÌNH TRÊN
MÔI TRƯỜNG WINDOWS
***
XỬ LÝ CONTROL
Phạm Minh Tuấn

03/23/10 Khoa CNTT - ĐH KHTN 2
Nội dung trình bày

Giới thiệu

Tạo Control

Delegate và Event
03/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
03/23/10 Khoa CNTT - ĐH KHTN 4
Tạ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
03/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;
}
}
03/23/10 Khoa CNTT - ĐH KHTN 6
Tạ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);
}
}
03/23/10 Khoa CNTT - ĐH KHTN 7
Tạo Control

Tạo Composite 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.
03/23/10 Khoa CNTT - ĐH KHTN 8
Tạ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
03/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);
03/23/10 Khoa CNTT - ĐH KHTN 10

×