Microsoft Word Bai 11 2 doc Trang 1 MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Bài thực hành số 11 2 Xây dựng Inherited 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 Inherited co[.]
Trang MƠN : LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Bài thực hành số 11.2 : Xây dựng Inherited 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 Inherited control giải chức ₫ặc thù cách thừa kế ₫iều khiển ₫ã có sẵn có tính gần giống II Nội dung : xây dựng Inherited Control có tên MyTextBox, TextBox hoạt ₫ộng nhiều chế ₫ộ khác : Common (giống textbox Net), Text (chỉ cho nhập ký tự alphabet), NumInt (chỉ cho phép nhập ký số), NumReal (chỉ cho phép nhập ký số dấu chấm thập phân) III Chuẩn ₫ầu : Sinh viên nắm vững xây dựng thành thạo Inherited Control có chức ₫ặc thù xây dựng ứng dụng dùng lai Inherited Control IV Qui trình : IV.1 Xây dựng Inherited 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.1 ₫ể 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 Ấ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 MyTextBox.cs click button Add ₫ể tạo Lúc control vùng hình chữ nhật trống Dời chuột mục MyTextBox.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 MyTextBox control Thêm lệnh ₫ịnh nghĩa kiểu liệt kê chế ₫ộ làm việc MyTextBox : public enum ValidationType { Common = 0, //giống TextBox bình thường NumInt, //chỉ nhận ký số NumReal, //chỉ nhận ký số dấu chấm thập phân Text //chỉ nhận ký tự chữ } Hiệu chỉnh lại lệnh ₫ịnh nghĩa class MyTextBox ₫ể thừa kế class TextBox (thay UserControl mặc ₫ịnh) Nội dung chi tiết class MyTextBox ₫ược liệt kê slide sau public partial class MyTextBox : TextBox { bool fPoint; //hàm contructor public MyTextBox() : base() { InitializeComponent(); //₫ăng ký hàm xử lý kiện KeyPress this.KeyPress += new KeyPressEventHandler(OnKeyPress); } //₫ịnh nghĩa thuộc tính ValidateFor miêu tả chế ₫ộ làm việc Trang private int intValidType = (int)ValidationType.Text; public ValidationType ValidateFor { get { return (ValidationType)intValidType; } set { intValidType = (int)value; } } //hàm xử lý kiện gỏ phím KeyPress protected void OnKeyPress(object sender, KeyPressEventArgs e) { //xác ₫ịnh mã ký tự ₫ược nhập char ch = e.KeyChar; //kiểm tra chế ₫ộ hoạt ₫ộng ₫ể phản ứng switch (intValidType) { case (int)ValidationType.Common: //nếu kiểu tổng qt, khơng xử lý thêm return; case (int)ValidationType.NumInt: //nếu kiểu số nguyên nhận ký số if (!Char.IsDigit(ch)) e.KeyChar = (char)0; return; case (int)ValidationType.NumReal: //nếu kiểu số thực nhận ký số + dấu if (Char.IsDigit(ch)) return; if (ch == '.' && fPoint==false) { fPoint = true; return; } e.KeyChar = (char)0; return; case (int)ValidationType.Text: //nếu kiểu chuỗi văn nhận ký tự chữ ch = Char.ToLower(ch); if (ch < 'a' || 'z' < ch) e.KeyChar = (char)0; return; } } //kết thúc lệnh switch, hàm OnKeyPress, 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 ₫ược 10 Nếu dịch thành cơng, file thư viện có tên MyUserControls.dll ₫ược 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 Inherited Control Chạy VS Net, chọn menu File.New.Project ₫ể hiển thị cửa sổ New Project Mở rộng mục Visual C# TreeView "Project Types", chọn mục Windows, chọn icon "Windows Application" listbox "Templates" bên phải, thiết lập thư mục chứa Project listbox "Location", nhập tên Project vào textbox "Name:" (td UseMyTextBox), click button OK ₫ể tạo Project theo thông số ₫ã khai báo Form ₫ầu tiên ứng dụng ₫ã hiển thị cửa sổ thiết kế, việc thiết kế form trình lặp thao tác tạo mới/xóa/hiệu chỉnh thuộc tính/tạo hàm xử lý kiện cho ₫ối tượng cần dùng form Trang 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 vào 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 ₫ược slide trước, chọn file dll click button OK ₫ể "add" usercontrol thư viện vào cửa sổ Toolbox Project ứng dụng Duyệt tìm phần tử Label (trong nhóm Common Controls), chọn nó, dời chuột vị trí thích hợp form vẽ với kích thước mong muốn Hiệu chỉnh thuộc tính Text = "Nhập chuỗi :" Nếu cần, thay ₫ổi vị trí kích thước Label Form Duyệt tìm phần tử MyTextBox (trong nhóm General cuối cửa sổ Toolbox), chọn nó, dời chuột vị trí thích hợp Form (bên phải Label vừa vẽ) 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) = txtCommon, thuộc tính ValidateFor = Common ₫ể hoạt ₫ộng chế ₫ộ nhập ký tự bình thường Lặp bước ba lần ₫ể tạo thêm cặp (Label, MyTextBox) khác, MyTextBox tạo có thuộc tính ValidateFor = Text, NumInt, NumReal ₫ể hoạt ₫ộng chuỗi văn bản, số nguyên, số thực Đố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 Sau thiết kế xong, form ứng dụng có dạng sau : Chọn menu Debug.Start Debugging ₫ể dịch chạy ứng dụng Hãy thử nhập loại ký tự vào ₫ối tượng MyTextBox ₫ánh giá kết