1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bai 5 2

3 1 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài Thực Hành Số 9.1: Xây Dựng Inherited Control Và Ứng Dụng Dùng Nó
Trường học University of Information Technology
Chuyên ngành Object-Oriented Programming
Thể loại Bài thực hành
Thành phố Ho Chi Minh City
Định dạng
Số trang 3
Dung lượng 59,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Môn Lập trình hướng đối tượng Trang 3 MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Bài thực hành số 9 1 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 c[.]

Trang 1

MÔN : L P TRÌNH H Ậ ƯỚ NG Đ I T Ố ƯỢ NG Bài th c hành s 9.1 ự ố : 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 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ó tính năng g n gi ng.ặ ủ ằ ừ ế ề ể ẵ ầ ố

II N i dung : ộ

 xây d ng 1 Inherited Control có tên là MyTextBox, nó là TextBox nh ng có th ho t ự ư ể ạ

đ ng 1 trong nhi u ch đ khác nhau :ộ ở ề ế ộ

1 Common (gi ng nh textbox c a Net), ố ư ủ

2 Text (ch cho nh p các ký t alphabet), ỉ ậ ự

3 NumInt (ch cho phép nh p các ký s ), ỉ ậ ố

4 NumReal (ch cho phép nh p các ký s và d u ch m th p phân).ỉ ậ ố ấ ấ ậ

III Chu n đ u ra : ẩ ầ

 Sinh viên n m v ng và xây d ng thành th o các Inherited Control có ch c năng đ c ắ ữ ự ạ ứ ặ thù cũng nh xây d ng ng d ng dùng lai các Inherited Control.ư ự ứ ụ

IV Qui trình :

IV.1 Xây d ng Inherited 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.1 đ 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 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àọ ể ạ ớ ậ MyTextBox.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 MyTextBox.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 MyTextBox control.ổ ạ ồ

4 Thêm l nh đ nh nghĩa ki u li t kê các ch đ làm vi c c a MyTextBox :ệ ị ể ệ ế ộ ệ ủ

public enum ValidationType {

Common = 0, //gi ng nh TextBox bình thố ư ường

NumInt, //ch nh n các ký sỉ ậ ố

NumReal, //ch nh n các ký s và d u ch m th p phânỉ ậ ố ấ ấ ậ

Text //ch nh n các ký t chỉ ậ ự ữ

}

5 Hi u ch nh l i l nh đ nh nghĩa class MyTextBox đ th a k class TextBox (thay vìệ ỉ ạ ệ ị ể ừ ế UserControl nh m c đ nh) N i dung chi ti t c a class MyTextBox đư ặ ị ộ ế ủ ược li t kê cácệ ở slide sau

public partial class MyTextBox : TextBox {

bool fPoint;

//hàm contructor

public MyTextBox() : base() {

InitializeComponent();

//đăng ký hàm x lý s ki n KeyPressử ự ệ

this.KeyPress += new KeyPressEventHandler(OnKeyPress);

}

//đ nh nghĩa thu c tính ValidateFor miêu t ch đ làm vi cị ộ ả ế ộ ệ

private int intValidType = (int)ValidationType.Text;

public ValidationType ValidateFor {

Trang 2

get { return (ValidationType)intValidType; }

set { intValidType = (int)value; }

}

//hàm x lý s 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 là ki u t ng quát, thì không x lý thêm gì cế ể ổ ử ả

return;

case (int)ValidationType.NumInt:

//n u là ki u s nguyên thì ch nh n ký sế ể ố ỉ ậ ố

if (!Char.IsDigit(ch)) e.KeyChar = (char)0;

return;

case (int)ValidationType.NumReal:

//n u là ki u s th c thì ch 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 là ki u chu i văn b n thì ch 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, ế ệ

6 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

10 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 Inherited Control ự ứ ụ

1 Ch y VS Net, ch n menu File.New.Project đ hi n th c a s New Project.ạ ọ ể ể ị ử ổ

2 M r ng m c Visual C# trong TreeView "Project Types", ch n m c Windows, ch n iconở ộ ụ ọ ụ ọ

"Windows Application" trong listbox "Templates" bên ph i, thi t l p th m c ch a Projectả ế ậ ư ụ ứ trong listbox "Location", nh p tên Project vào textbox "Name:" (td UseMyTextBox), clickậ button OK đ t o Project theo các thông s đã khai báo.ể ạ ố

3 Form đ u tiên c a ng d ng đã hi n th trong c a s thi t k , vi c thi t k form là quáầ ủ ứ ụ ể ị ử ổ ế ế ệ ế ế trình l p 4 thao tác t o m i/xóa/hi u ch nh thu c tính/t o hàm x lý s ki n cho t ng đ iặ ạ ớ ệ ỉ ộ ạ ử ự ệ ừ ố

tượng c n dùng trong form.ầ

4 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ào trongự ờ ộ

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, hãy duy t tìm đ n th m c ch a file MyUserControls.dll v a xây d ngệ ệ ế ư ụ ứ ừ ự

Trang 3

được trong các slide trước, ch n file dll r i click button OK đ "add" các usercontrol trongọ ồ ể

th vi n này vào c a s Toolbox c a Project ng d ng.ư ệ ử ổ ủ ứ ụ

5 Duy t tìm ph n t Label (trong nhóm Common Controls), ch n nó, d i chu t v v tríệ ầ ử ọ ờ ộ ề ị thích h p trong form và v nó v i kích thợ ẽ ớ ước mong mu n Hi u ch nh thu c tính Text =ố ệ ỉ ộ

"Nh p chu i b t kỳ :" N u c n, hãy thay đ i v trí và kích thậ ỗ ấ ế ầ ổ ị ướ ủc c a Label và Form

6 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 v trí thích h p trong Form (bên ph i Label v a v ) 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) = txtCommon, thu c tính ValidateFor = Common đ nó ho t đ ng ch đ nh pộ ể ạ ộ ở ế ộ ậ

ký t bình thự ường

7 L p 2 bặ ước 5 và 6 ba l n đ t o thêm 3 c p (Label, MyTextBox) khác, các MyTextBoxầ ể ạ ặ

t o m i l n lạ ớ ầ ượt có thu c tính ValidateFor = Text, NumInt, NumReal đ ho t đ ng trênộ ể ạ ộ

ho c chu i văn b n, ho c s nguyên, ho c s th c ặ ỗ ả ặ ố ặ ố ự

Đ 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 Sau khi thi t k xong, form ng d ng có d ng sau :ễ ế ế ứ ụ ạ

8 Ch n menu Debug.Start Debugging đ d ch và ch y ng d ng Hãy th nh p các lo i kýọ ể ị ạ ứ ụ ử ậ ạ

t vào các đ i tự ố ượng MyTextBox và đánh giá k t qu ế ả

Ngày đăng: 11/04/2023, 16:02

w