nhập môn điện toán,nguyễn trung hiệp,dhbkhcm 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[.]
Trang 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 ứng dụng dùng I Mục tiêu : Giúp SV làm quen với cách thức xây dựng Owner-drawn control giải chức đặc thù cách thừa kế điều khiển có sẵn có tính 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, Button mặt khơng phải hình chữ nhật có đường viền thơng thường mà trái tim màu đỏ tươi III Chuẩn đầu : Sinh viên nắm vững xây dựng thành thạo Owner-drawn Control có chức đặc thù xây dựng ứng dụng dùng lại Owner-drawn Control IV Qui trình : IV.1 Xây dựng Owner-drawn control Chạy VS Net, chọn menu File.Open.Project để hiển thị cửa sổ duyệt file Duyệt tìm file *.sln quản lý Project "Windows Control Library" có sẵn từ thực hành 9.2 để mở lại Project Quan sát Project, thấy có mục LoginControl.cs quản lý user control xây dựng từ thực hành 9.1, mục MyTextBox.cs quản lý inherited control xây dựng từ thực hành 9.2 Ấn phải chuột vào gốc Project cửa sổ "Solution Explorer", chọn option Add.User Control để tạo User Control, nhập tên HeartButton.cs click button Add để tạo Lúc control vùng hình chữ nhật trống Dời chuột mục HeartButton.cs cửa sổ Project, ấn phải chuột chọn option "View Code" để hiển thị cửa sổ soạn mã nguồn cho HeartButton control Hiệu chỉnh lại lệnh định nghĩa class HeartButton để thừa kế class Button (thay UserControl mặc định) Nội dung chi tiết class HeartButton sau : namespace MyUserControls { public partial class HeartButton : Button { public HeartButton() { InitializeComponent(); } //tác vụ vẽ mặt giao diện Button protected override void OnPaint(PaintEventArgs e) { //xác định đối tượng vẽ 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 button g.DrawString(this.Text, this.Font, Brushes.White, this.Width / 2, this.Height / 3, format1); } } } CuuDuongThanCong.com https://fb.com/tailieudientucntt Trang Chọn menu Build.Build Solution để dịch tạo file thư viện chứa user control Nếu có lỗi sữa dịch lại Lưu ý máy báo lỗi hàng lệnh this.AutoScaleMode = thích hàng lệnh hay xóa ln Nếu dịch thành công, file thư viện có tên MyUserControls.dll tạo thư mục Debug (hay Release tùy chế độ dịch) thư mục chứa Project Ta nên copy file vào thư mục chung chứa file thư viện để sau dùng tiện lợi IV.2 Xây dựng ứng dụng dùng Owner-drawn Control Trong chương 5, xây dựng chương trình giải phương trình bậc dùng giao diện đồ họa trực quan Chúng ta dùng textbox để nhập liệu button để khởi động việc giải phương trình hiển thị kết Bây hiệu chỉnh lại chương trình giải phương trình bậc để dùng đối tượng MyTextBox đối tượng HeartButton Nhân thư mục VCGPTB2 (có thực hành 5.1) thành thư mục tên UseHeartButton Chạy VS Net, chọn menu File.Open.Project để hiển thị cửa sổ duyệt file Duyệt tìm file VCGPTB2.sln thư mục UseHeartButton để mở lại Project Dời chuột mục Form1.cs Project cửa sổ "Solution Explorer", ấn kép chuột vào để hiển thị lại cửa sổ thiết kế trực quan cho Form chương trình Chọn xóa textbox button có sẵn Nếu cửa sổ ToolBox chưa hiển thị chi tiết, chọn menu View.Toolbox để hiển thị (thường nằm bên trái hình) Click chuột vào button (Auto Hide) nằm góc phải cửa sổ ToolBox để chuyển chế độ hiển thị thường trực Dời chuột nhóm Components cửa sổ Toolbox, ấn phải chuột để 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, duyệt tìm đến thư mục chứa file MyUserControls.dll vừa xây dựng phần đầu thực hành, chọn file dll click button OK để "add" usercontrol thư viện vào nhóm Components cửa sổ Toolbox Project ứng dụng Duyệt tìm phần tử MyTextBox (thường cuối nhóm Components), chọn nó, dời chuột bên phải Label “Nhập a:” vẽ với kích thước mong muốn Vào cửa sổ thuộc tính đối tượng MyTextBox vừa vẽ, đặt thuộc tính (Name) = txtA, thuộc tính ValidateFor = NumReal để hoạt động chế độ nhập số thực Lặp lại bước hai lần để tạo thêm đối tượng MyTextBox khác, MyTextBox tạo có thuộc tính (Name) = txtB, txtC cịn thuộc tính ValidateFor = NumReal Đối với đối tượng giống nhau, ta dùng kỹ thuật Copy-Paste để nhân vơ tính chúng cho dễ dàng Duyệt tìm phần tử HeartButton (thường cuối nhóm Components), chọn nó, dời chuột MyTextBox txtC vẽ với kích thước mong muốn Vào cửa sổ thuộc tính đố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 thiết kế xong, form ứng dụng có dạng sau : CuuDuongThanCong.com https://fb.com/tailieudientucntt Trang Chọn lại button để hiển thị cửa sổ thuộc tính nó, click icon để hiển thị danh sách kiện đối tượng HeartButton, duyệt tìm kiện quan tâm (Click), click chuột vào dấu bên phải kiện Click để máy hiển thị danh sách hàm xử lý có, chọn lại hàm xử lý có tên btnStart() 10 Chọn menu Debug.Start Debugging để dịch chạy ứng dụng Hãy thử nhập ba (a,b,c) phương trình bậc ấn button "Bắt đầu giải" để giải xem kết CuuDuongThanCong.com https://fb.com/tailieudientucntt ... phải Label ? ?Nhập a:” vẽ với kích thước mong muốn Vào cửa sổ thuộc tính đối tượng MyTextBox vừa vẽ, đặt thuộc tính (Name) = txtA, thuộc tính ValidateFor = NumReal để hoạt động chế độ nhập số thực... dựng chương trình giải phương trình bậc dùng giao diện đồ họa trực quan Chúng ta dùng textbox để nhập liệu button để khởi động việc giải phương trình hiển thị kết Bây hiệu chỉnh lại chương trình... lại hàm xử lý có tên btnStart() 10 Chọn menu Debug.Start Debugging để dịch chạy ứng dụng Hãy thử nhập ba (a,b,c) phương trình bậc ấn button "Bắt đầu giải" để giải xem kết CuuDuongThanCong.com https://fb.com/tailieudientucntt