Tài liệu thực hành môn Nhập môn điện toán - Bài thực hành số 9.3: Xây dựng Owner-drawn control và ứng dụng dùng nó

Trang 1  
MÔN : LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG  
Bài thực hành số 9.3 : Xây dựng Owner-drawn control và ứng dụng dùng nó  
I. Mục tiêu :  
▪
Giúp SV làm quen với cách thức xây dựng 1 Owner-drawn control giải quyết chức  
năng đặc thù của mình bằng cách thừa kế điều khiển đã có sẵn có cùng tính năng  
nhưng giao diện chưa phù hợp với nhu cầu riêng.  
II. Nội dung :  
Xây dựng button HeartButton, nó là Button nhưng bộ mặt không phải là hình chữ  
nhật có đường viền thông thường mà là một trái tim màu đỏ tươi.  
▪
III. Chuẩn đầu ra :  
Sinh viên nắm vững và xây dựng thành thạo các Owner-drawn Control có chức năng  
đặc thù cũng như xây dựng ứng dụng dùng lại các Owner-drawn Control.  
▪
IV. Qui trình :  
IV.1 Xây dựng Owner-drawn control  
1. Chạy VS .Net, chọn menu File.Open.Project để hiển thị cửa sổ duyệt file. Duyệt và tìm  
file *.sln quản lý Project "Windows Control Library" có sẵn từ bài thực hành 9.2 để mở lại  
Project này.  
2. Quan sát cây Project, chúng ta đã thấy có mục LoginControl.cs quản lý user control đã  
xây dựng từ bài thực hành 9.1, mục MyTextBox.cs quản lý inherited control đã xây dựng  
từ bài thực hành 9.2. Ấn phải chuột vào gốc của cây Project trong cửa sổ "Solution  
Explorer", chọn option Add.User Control để tạo mới 1 User Control, nhập tên là  
HeartButton.cs rồi click button Add để tạo mới nó.  
3. Lúc này control mới chỉ là 1 vùng hình chữ nhật trống. Dời chuột về mục HeartButton.cs  
trong cửa sổ Project, ấn phải chuột trên nó rồi chọn option "View Code" để hiển thị cửa  
sổ soạn mã nguồn cho HeartButton control.  
4. Hiệu chỉnh lại lệnh định nghĩa class HeartButton để thừa kế class Button (thay vì  
UserControl như mặc định). Nội dung chi tiết của class HeartButton như sau :  
namespace MyUserControls {  
public partial class HeartButton : Button {  
public HeartButton() {  
InitializeComponent();  
}
//tác vụ vẽ bộ mặt giao diện của Button  
protected override void OnPaint(PaintEventArgs e) {  
//xác định đối tượng vẽ của Button  
Graphics g = e.Graphics;  
//tạo đối tượng image gốc chứa ảnh trái tim màu đỏ  
Image bgimg = Image.FromFile("c:\\bgbutton.jpg");  
//vẽ inage gốc theo chế độ zoom vào button  
g.DrawImage(bgimg, 0, 0, this.Width, this.Height);  
//định nghĩa đối tượng miêu tả cách thức hiển thị chuỗi  
StringFormat format1 = new StringFormat(StringFormatFlags.NoClip);  
format1.Alignment = StringAlignment.Center;  
//vẽ chuỗi caption của button  
g.DrawString(this.Text, this.Font, Brushes.White, this.Width / 2, this.Height / 3,  
format1);  
}
}
}
Trang 2  
5. Chọn menu Build.Build Solution để dịch và tạo file thư viện chứa các user control. Nếu  
có lỗi thì sữa và dịch lại. Lưu ý khi máy báo lỗi ở hàng lệnh this.AutoScaleMode = ... thì  
hãy chú thích hàng lệnh này hay xóa nó luôn cũng được.  
6. Nếu dịch thành công, file thư viện có tên là MyUserControls.dll sẽ được tạo ra trong thư  
mục con Debug (hay Release tùy chế độ dịch) trong thư mục chứa Project. Ta nên copy  
file này vào thư mục chung chứa các file thư viện để sau này dùng tiện lợi hơn.  
IV.2 Xây dựng ứng dụng dùng Owner-drawn Control  
Trong chương 5, chúng ta đã xây dựng chương trình giải phương trình bậc 2 dùng giao diện  
đồ họa trực quan. Chúng ta đã dùng 3 textbox để nhập liệu và 1 button để khởi động việc  
giải phương trình và hiển thị kết quả. Bây giờ chúng ta hãy hiệu chỉnh lại chương trình giải  
phương trình bậc 2 để dùng 3 đối tượng MyTextBox và 1 đối tượng HeartButton.  
1. Nhân bản thư mục VCGPTB2 (có được trong bài thực hành 5.1) thành thư mục mới tên  
là UseHeartButton.  
2. Chạy VS .Net, chọn menu File.Open.Project để hiển thị cửa sổ duyệt file. Duyệt và tìm  
file VCGPTB2.sln trong thư mục UseHeartButton để mở lại Project này.  
3. Dời chuột về mục Form1.cs của cây Project trong cửa sổ "Solution Explorer", ấn kép  
chuột vào nó để hiển thị lại cửa sổ thiết kế trực quan cho Form chương trình.  
4. Chọn và xóa 3 textbox và button có sẵn.  
5. Nếu cửa sổ ToolBox chưa hiển thị chi tiết, chọn menu View.Toolbox để hiển thị nó  
(thường nằm ở bên trái màn hình). Click chuột vào button  
(Auto Hide) nằm ở góc trên  
phải cửa sổ ToolBox để chuyển nó về chế độ hiển thị thường trực. Dời chuột về nhóm  
Components trong cửa sổ Toolbox, ấn phải chuột trên nó để hiển thị menu lệnh, chọn  
option "Choose Items". Khi cửa sổ "Choose Toolbox Items" hiển thị, click chuột vào  
button Browse để hiển thị cửa sổ duyệt tìm file, hãy duyệt tìm đến thư mục chứa file  
MyUserControls.dll vừa xây dựng được trong phần đầu của bài thực hành, chọn file dll  
rồi click button OK để "add" các usercontrol trong thư viện này vào nhóm Components  
của cửa sổ Toolbox của Project ứng dụng.  
6. Duyệt tìm phần tử MyTextBox (thường ở cuối nhóm Components), chọn nó, dời chuột về  
bên phải Label “Nhập a:” và vẽ nó với kích thước mong muốn. Vào cửa sổ thuộc tính của  
đối tượng MyTextBox vừa vẽ, đặt thuộc tính (Name) = txtA, thuộc tính ValidateFor =  
NumReal để nó hoạt động ở chế độ nhập số thực.  
7. Lặp lại bước 6 hai lần để tạo thêm 2 đối tượng MyTextBox khác, các MyTextBox tạo mới  
lần lượt có thuộc tính (Name) = txtB, txtC còn thuộc tính ValidateFor = NumReal.  
Đối với các đối tượng giống nhau, ta có thể dùng kỹ thuật Copy-Paste để nhân bản vô  
tính chúng cho dễ dàng.  
8. Duyệt tìm phần tử HeartButton (thường ở cuối nhóm Components), chọn nó, dời chuột  
về ngay dưới MyTextBox txtC và vẽ nó với kích thước mong muốn. Vào cửa sổ thuộc  
tính của đối tượng HeartButton vừa vẽ, đặt thuộc tính (Name) = btnStart, thuộc tính Text  
= “Bắt đầu giải”.  
Sau khi thiết kế xong, form ứng dụng có dạng sau :  
Trang 3  
9. Chọn lại button để hiển thị cửa sổ thuộc tính của nó, click icon  
để hiển thị danh sách  
các sự kiện của đối tượng HeartButton, duyệt tìm sự kiện quan tâm (Click), click chuột  
vào dấu bên phải sự kiện Click để máy hiển thị danh sách các hàm xử lý đã có, chọn  
lại hàm xử lý có tên là btnStart().  
10. Chọn menu Debug.Start Debugging để dịch và chạy ứng dụng. Hãy thử nhập từng bộ ba  
(a,b,c) của phương trình bậc 2 rồi ấn button "Bắt đầu giải" để giải và xem kết quả.  
doc 3 trang myanh 21100 Free
Bạn đang xem tài liệu "Tài liệu thực hành môn Nhập môn điện toán - Bài thực hành số 9.3: Xây dựng Owner-drawn control và ứng dụng dùng nó", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • doctai_lieu_thuc_hanh_mon_nhap_mon_dien_toan_bai_thuc_hanh_so_9.doc