1. Trang chủ
  2. » Thể loại khác

Bài giảng lập trình hướng sự kiện it09 Đại học mở hà nội

132 0 0
Tài liệu đã được kiểm tra trùng lặp

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 132
Dung lượng 6,71 MB

Nội dung

BÀI I: TỔNG QUAN Mục tiêu: Trong bài này, Anh/Chị cần đạt được những mục tiêu sau: 1. Hiểu được khái niệm về Lập trình Hướng sự kiện 2. Hiểu được kiến trúc tổng quát của .NET Framework 3. Biết lập trình các bài toán cơ bản với ngôn ngữ Visual C# 4. Hiểu biết về bài toán ví dụ dành cho cả môn học Nội dung: I. TỔNG QUAN 1. Sự kiện (event) là gì? Sự kiện là những gì (tình huống) sẽ xảy ra ở những vị trí và thời điểm có thể dự đoán được bởi những tác động của con người hoặc các yếu tố khác Ví dụ: - Mưa rơi xuống sông à? - Nước sông tràn bờ à ? - Người lái xe nhấn phanh à? 2. Xử lý (phản ứng với) sự kiện - Mỗi sự kiện xảy ra sẽ thay đổi trạng thái hiện tại của môi trường - Cần có những phản ứng thích hợp với mỗi thay đổi đó (với mỗi sự kiện)

Trang 1

BÀI I: TỔNG QUAN

Mục tiêu:

Trong bài này, Anh/Chị cần đạt được những mục tiêu sau:

1 Hiểu được khái niệm về Lập trình Hướng sự kiện

2 Hiểu được kiến trúc tổng quát của NET Framework

3 Biết lập trình các bài toán cơ bản với ngôn ngữ Visual C#

4 Hiểu biết về bài toán ví dụ dành cho cả môn học

- Mỗi sự kiện xảy ra sẽ thay đổi trạng thái hiện tại của môi trường

- Cần có những phản ứng thích hợp với mỗi thay đổi đó (với mỗi sự kiện)

3 Lập trình hướng sự kiện

Lập trình hướng sự kiện là phương pháp tạo ra các kịch bản cho các tình huống (sự kiện) được biết trước sẽ xảy ra trên các thành phần/đối tượng của chương trình VD:

- Ngưới dùng click chuột -> ?

- Người dùng ấn Esc -> ?

Với công nghệ ngày nay:

- HĐH cung cấp cho ứng dụng thông tin để biết là có gì (sự kiện nào) đã xảy ra với thành phần nào của ứng dụng

- Ứng dụng tự quyết định (theo kịch bản viết sẵn) sẽ làm gì với sự kiện đã xảy

ra (xử lý sự kiện như thế nào?)

Trang 2

Lập trình hướng sự kiện có liên hệ chặt chẽ với lập trình hướng đối tượng

II LẬP TRÌNH VỚI NET FRAMEWORK

1 Cài đặt NET Framework và Visual Studio.NET

- Tải NET Framework 2.0: (free)

Trang 3

và code

F7, Shift F7

3 Các thành phần của NET Framework

Common Language Runtime: (Bộ thực thi ngôn ngữ chung)

Base Classes

Trang 4

- NET Framework cung cấp một tập hợp các lớp có thứ bậc, có thể mở rộng

và được sử dụng bởi bất cứ ngôn ngữ lập trình nào

- Các lớp cơ sở có thể được sử dụng để:

 Xử lý các CTDL như xâu, mảng, danh sách, …

 Truy nhập hệ thống file, registry

Trang 5

 ASP.NET

o Web Forms: ứng dụng web

o Web Services: các dịch vụ web

4 Cấu trúc 1 tệp chương trình

5 Một số loại Project trong NET Framework

Sử dụng thư viện (namespace)

Phương thức get, set

Phương thức Method 1

Trang 6

5.1 Console

5.2 Windows Application

Trang 7

6 Một số ví dụ với ngôn ngữ lập trình C#

6.1 Chương trình “Hello World”

6.2 Chương trình “Tính trung bình cộng 2 số”

Trang 9

III BÀI TOÁN VÍ DỤ MÔN HỌC

1 Phát biểu bài toán

Một đơn vị nhập hàng hoá từ nhiều nhà cung cấp khác nhau cần một chương trình để quản lý hàng hoá nhập kho Biết rằng:

- Một nhà cung cấp có thể cung cấp nhiều hàng hoá khác nhau

- Mỗi hàng hoá lại có thể được nhập từ nhiều nhà cung cấp khác nhau

- Trước khi đưa hàng hoá vào kho thì cần lập giấy nhập kho để ghi nhận thời gian nhập, người lập, số lượng nhập kho của từng loại hàng hoá

- Chương trình cần thống kê được hàng hoá nhập theo: Khoảng thời gian, Nhà cung cấp, Loại hàng hoá

Trang 10

2 Cơ sở dữ liệu

Sơ đồ CSDL của Bài toán quản lý hàng hoá nhập kho

Trang 11

Chúc Anh/Chị học tập tốt

TÀI LIỆU THAM KHẢO

1 Bài giảng Lập trình Hướng sự kiện, Nhóm tác giả, Khoa CNTT – Viện Đại học Mở

Hà Nội

2 .NET toàn tập (tập 7: Sổ tay Kỹ thuật Visual C#), Dương Quang Thiện, NXB Tổng hợp Tp Hồ Chí Minh

3 Windows Forms Programming in C#, Chris Sell, Addison-Wesley Professional, 2004

4 Learning C#, Jessie Liberty, O’Reilly, 2002

Trang 12

BÀI 2: TRUY CẬP CSDL VỚI ADO.NET

Mục tiêu:

Trong bài này, Anh/Chị cần đạt được những mục tiêu sau:

- Hiểu rõ được khái niệm, mô hình các đối tượng và lợi ích của ADO.NET

- Nắm vững được cách truy xuất CSDL

- Làm quen với các đối tượng của ADO.NET

- Nắm vững các ví dụ của bài học

Nội dung:

I GIỚI THIỆU

1 Đặc điểm chung

- ADO.NET là một tập hợp các lớp (classes) cho phép các ứng dụng trên nền NET

có thể truy xuất thông tin trong các CSDL và các nguồn dữ liệu khác

- ADO.NET cung cấp các phương pháp truy xuất thích hợp với nhiều loại dữ liệu, bao gồm CSDL MS SQL Server, các CSDL tương thích OLEDB, các CSDL phi quan hệ như MS Exchange Server, và các văn bản XML

- ADO.NET làm việc theo mô hình ngắt kết nối với nguồn dữ liệu

2 Lợi ích của ADO.NET

- Mô hình lập trình tương tự như ADO

- Làm việc theo mô hình CSDL ngắt kết nối

- Sẵn có trong NET Framework  dễ dàng xây dựng, triển khai ứng dụng

- Hỗ trợ chuyển đổi dễ dàng giữa mô hình CSDL quan hệ và định dạng dữ liệu XML

Trang 13

3 Mô hình các đối tượng trong ADO.NET

- ADO.NET sử dụng các trình cung cấp dữ liệu (hay còn gọi là các trình điều khiển dữ liệu) NET(.NET Data Providers) để liên kết ứng dụng với nguồn dữ liệu

2 Khai báo các đối tượng ADO.NET cần thiết (Connection, Command, …)

3 Thiết lập các thông số cho Command

Trang 14

SqlServer:

Provider=SqlOLEDB.1;

Data Source=<tên|IP DB Server>;

Initial Catalog=<tên Database>;

User ID=<tên truy cập>;

Password=<mật khẩu>;

Provider=SqlOLEDB.1;

Data Source=<tên|IP DB Server>;

Initial Catalog=<tên Database>;

Integrated Security=TRUE|SSPI;

Có thể thay:

 Data Source ~ Server

 Initial Catalog ~ Database

Tham khảo: www.ConnectionStrings.com

Thông số kết nối nên đặt trong tệp cấu hình (App.Config) của ứng dụng

II Các đối tượng của ADO.NET

Trang 15

 CreateCommand() tạo ra đối tượng Command

 BeginTransaction(): tạo ra đối tượng Transaction

 Dispose():

(có thể sử dụng cấu trúc using (<khai báo đối tượng>){….}

để NET tự huỷ đối tượng ngay sau “}”

VD: Kết nối tới CSDL SqlServer

2 Command

- Dùng để thực hiện các truy vấn với CSDL

- Khởi tạo:

Trang 16

 SqlCommand <tênObj>= new SqlCommand(commandText, connection);

 SqlCommand <tênObj>= <đối tượng Connection>.CreateCommand();

Trang 17

- Chương trình:

Trang 18

2 Ví dụ II.3.1

Yêu cầu: Thêm dữ liệu vào bảng Nhà cung cấp sử dụng Stored Procedure

- Tạo Stored procedure

Stored Procedure spNhacungcap_Insert

- Lập trình C#

Trang 19

- Chương trình:

Trang 20

Chúc Anh/Chị học tập tốt!

TÀI LIỆU THAM KHẢO

1 Bài giảng Lập trình Hướng sự kiện, Nhóm tác giả, Khoa CNTT – Viện Đại học

Trang 21

BÀI 3: TRUY CẬP CSDL VỚI ADO.NET (TIẾP THEO)

Mục tiêu:

Trong bài này, Anh/Chị cần đạt được những mục tiêu sau:

- Biết cách làm việc với các đối tượng còn lại của ADO.NET:

• Khai báo:

o SqlDataReader <tên Obj> = <Command>.ExecuteReader() ;

• Thuộc tính:

o HasRows: true/false  có bản ghi trong reader hay không

o FieldCount: số trường trong reader

o IsClosed : true/false  reader đã bị đóng chưa

• Phương thức:

o Read(): true/false  đọc 1 bản ghi từ nguồn dữ liệu vào reader, nếu đọc được sẽ trả ra true, ngược lại sẽ trả ra false

Trang 22

o Close(): đóng reader

o Get<type>(i): đọc dữ liệu trường thứ i theo kiểu <type>

Có thể truy xuất tới 1 trường trong reader bằng cách <tên reader>[“tên trường”]

• Ví dụ: Hiện danh sách Nhà cung cấp sử dụng DataReader

Trang 23

o InsertCommand: Command sẽ dùng để thêm mới bản ghi từ bộ nhớ vào CSDL khi phương thức Update được gọi và có bản ghi mới trong bộ nhớ

o UpdateCommand: Command sẽ dùng để cập nhật bản ghi từ bộ nhớ vào CSDL khi phương thức Update được gọi và có bản ghi cần cập nhật trong bộ nhớ

o DeleteCommand: Command sẽ dùng để xoá bản ghi tương ứng với bản ghi bị xoá trong bộ nhớ vào CSDL khi phương thức Update được gọi và

có bản ghi trong bộ nhớ bị xoá

o DefaultView: trả ra đối tượng DataView thể hiện 1 cách nhìn (View) mặc định về bảng

 Phương thức:

o NewRow(): tạo ra 1 DataRow mới theo cấu trúc của bảng

o GetChanges([RowState]): trả ra các bản ghi thỏa mãn theo trạng thái Added/Updated/Deleted

o AcceptChanges(): chấp nhận các thay đổi

o RejectChanges(); từ chối các thay đổi

Trang 24

o Select([filter] [,order] [, DataViewRowState]):

lấy ra mảng các DataRow thỏa mãn [filter] theo trạng thái qui định bởi [DataViewRowState] và sắp xếp theo [order]

o ColumnName: Tên trường

o DataType = System.Type.GetType(<tên kiểu dữ liệu trong NET Framework>): kiểu dữ liệu của trường

o DefaultValue: giá trị mặc định cho trường ở bản ghi mới

o Expression: biểu thức tính giá trị cho trường

o MaxLength: độ dài của trường kiểu xâu

o Table: tham chiếu đến DataTable đang chứa DataColumn

o Unique: true|false: xác định tính duy nhất cho dữ liệu trong trường

5 DataRow

 Đối tượng đại diện cho 1 bản ghi trong DataTable

 Khai báo: DataRow <obj>=new DataRow()

Lưu ý: để tạo mới bản ghi theo cấu trúc 1 DataTable thì ta sử dụng

<DataTable>.NewRow()

 Để truy nhập giá trị 1 trường <DataRow>[tên trường]

 Thuộc tính:

o HasErrors:true|false: có lỗi trên DataRow không

o RowState: trạng thái của bản ghi (DataRowState enum)

o Table: tham chiếu đến đối tượng DataTable chứa bản ghi

Trang 25

Ví dụ: Hiển thị dữ liệu sử dụng DataTable

Stored procedure:

Hàm getHangByNhacungcap

Trang 26

Hàm Main

6 DataView

 Thể hiện một cách nhìn (view) khác đối với dữ liệu trong DataTable

 DataView có thể dùng để:

o Kết gán dữ liệu (DataBind) với các điều khiển

o Sắp xếp, lọc, tìm kiếm, cập nhật và duyệt các bản ghi

 Khai báo:

DataView <tênObj>= new DataView([DataTable]);

 Thuộc tính:

o Table: DataTable nguồn của DataView

o Sort: biểu thức sắp xếp dữ liệu trong DataView

o RowFilter=<điều kiện lọc bản ghi>

7 DataSet

DataSet là đối tượng quan trọng trong ADO.NET Mô hình của DataSet tương tự như 1 DB trong bộ nhớ (In Memory DB) Trong DataSet có thể có nhiều DataTable (bảng) nằm trong tập hợp Tables Giữa các DataTable, có thể thiết lập quan hệ bằng DataRelation DataSet chỉ chứa dữ liệu, không giữ kết nối (Disconnected DataSource) Dữ liệu được đưa từ CSDL vào DataSet bằng cách sử dụng phương thức Fill của DataAdapter Ta có thể cập nhật (thêm, sửa, xóa) các bản ghi trong các DataTable của DataSet, sau đó cập nhật ngược trở lại CSDL bằng cách gọi phương thức Update của DataAdapter Ngoài ra, DataSet còn cho phép chuyển đổi dữ liệu sang định dạng XML, thích hợp để xây dựng ứng dụng theo mô hình hướng dịch vụ (SOA)

Trang 27

• Khai báo:

DataSet <tênObj>=new DataSet([dsName]);

• Thuộc tính:

o Tables: Tập hợp các DataTable

o Relations: tập hợp các quan hệ giữa các bảng

o DataSetName: tên của DataSet

o HasErrors=true/false: có lỗi trong DataSet hay không

• Phương thức:

o HasChanges([DataRowState]): true/false

o GetChanges([DataRowState]), AcceptChanges(), RejectChanges()

o GetXml(): trả lại dữ liệu của DataSet thể hiện ở dạng XML

o WriteXml(fileName): ghi dữ liệu trong DataSet ra dạng XML

o ReadXml(filename): đọc cấu trúc và dữ liệu từ tài liệu xml vào DataSet

Trang 28

TÀI LIỆU THAM KHẢO

1 Bài giảng Lập trình Hướng sự kiện, Nhóm tác giả, Khoa CNTT – Viện Đại học

Trang 29

BÀI 4: WINDOWS FORM – CÁC ĐIỀU KHIỂN NỘI TẠI

Mục tiêu:

Trong bài này, Anh/Chị cần đạt được những mục tiêu sau:

1 Nắm được các khái niệm về đối tượng điều khiển

2 Sử dụng các điều khiển để thiết kế giao diện ứng dụng

Nội dung:

4.1 Giới thiệu

Windows Form là một phần của Microsoft NET Framework, nó sử dụng các công nghệ mới như: tích hợp tính bảo mật, hướng đối tượng, tốc độ thực thi,… Ngoài ra, Windows Forms hỗ trợ hoàn toàn việc kết nối với dữ liệu XML, hỗ trợ các điều khiển để dễ dàng kết nối dữ liệu thông qua ADO.NET

Với môi trường phát triển ứng dụng Visual Studio NET, nhà phát triển có thể sử dụng bất kỳ ngôn ngữ nào mà NET platform hỗ trợ để tạo các ứng dụng bằng Windows Forms, kể cả VB.NET và C#.NET

Microsoft NET Framework chứa một tập phong phú các lớp dùng để tạo các ứng

System.Windows.Forms Các lớp này có phạm vi từ các phần cơ bản như các lớp TextBox, Button, và MainMenu đến các điều kiểm chuyên biệt như TreeView, LinkLabel, và NotifyIcon Ngoài ra, bạn sẽ tìm thấy tất cả các công cụ cần thiết để quản lý các ứng dụng giao diện đa tài liệu (Multiple Document Interface - MDI), tích hợp việc trợ giúp theo ngữ cảnh, và ngay cả tạo các giao diện người dùng đa ngôn ngữ - tất cả đều không cần nhờ đến sự phức tạp của Win32 API

Windows form cung cấp các lớp điều khiển hỗ trợ lập trình và xử lý dữ liệu trực quan, hầu hết các nhà phát triển C# đều có thể tự nắm bắt nhanh chóng mô hình lập trình Windows Form

4.1.1 Môi trường làm việc trên Visual Studio.NET

a) Giới thiệu VS.NET

Trang 30

Visual Studio.NET (VS.NET) là phần mềm dùng để phát triển các ứng dụng trên nền NET, nó có các đặt tính nỗi bật như sau:

 Có thể sử dụng bất kỳ ngôn ngữ nào mà NET platform hỗ trợ

 Quản lý các thành phần bên trong theo cửa sổ

 Cung cấp môi trường thiết kế trực quan giúp người dùng có thể thiết kế giao diện rất dễ dàng

o Hỗ trợ các công cụ mạnh có thể thao tác với database thông qua ADO.NET…

VS.NET quản lý ứng dụng theo kiểu các giải pháp (Solution) và dự án (Project) Project là một ứng dụng xử lý một hệ thống, solution là tổng hợp của các project tạo nên một ứng dụng có thể giải quyết mọi công việc trong hệ thống

b) Các thành phần bên trong môi trường phát triển VS.NET

Giao diện môi trường phát triển winform:

Hình 1 – Cửa sổ làm việc của VS.NET Trong đó:

 Solution Explorer: hiển thị tất cả các project, các files theo dạng cây

 Toolbox: chứa các điều khiển cơ bản có thể sử dụng trên Webforms và trên Winforms, ngoài ra còn có các điều khiển ActiveX, XML Web services, các

Trang 31

 Server Explorer: cung cấp môi trường điều khiển và quản lý các servers nắm ngoài ứng dụng thông qua VS.NET

 Class View: mô tả cấu trúc logic của các lớp, các thành phần trong lớp theo dạng cây

 Properties: cho phép người sử dụng thiết đặt thuộc tính của các controls, classes và projects

c) Các bước để tạo project

Để tạo một ứng dụng windows form, ta làm theo các bước sau:

Bước 1 Vào New - > Project

Bước 2 Trong cửa sổ New project ta chọn:

 Project Types: chọn ngôn ngữ chúng ta sử dụng để xây dựng project

 Templates: chọn Windows Forms Application

 Name: Gõ vào tên của project

 Location: chọn nơi lưu trữ

4.1.2 Tổng quan về đối tượng: thuộc tính, phương thức và sự kiện

Visual Studio cung cấp rất nhiều điều khiển giúp người lập trình dễ dàng triển khai giao diện chương trình Các điều khiển được gom nhóm theo các nhóm chức năng, bao gồm:

Trang 32

 Các điều khiển vật chứa

 Các điều khiển menu

 Các điều khiển dữ liệu

 Các thành phần

 Các điều khiển hỗ trợ in

 Các điều khiển hộp thoại

Mỗi đối tượng điều khiển đều có 3 thành phần cơ bản liên quan, đó là:

 Thuộc tính của đối tượng

 Sự kiện xảy ra khi có hành động nào đó tác động lên đối tượng

 Phương thức - khả năng mà đối tượng có thể làm được

a) Thuộc tính (Properties)

Thuộc tính (Propertiy): Là các đặc điểm quy định lên đối tượng, ví dụ độ cao (height), độ rộng (width), mầu nền (BackColor),…

Mỗi đối tượng ta có thể thay đổi thuộc tính thông qua 2 cách:

 Thay đổi khi thiết kế (Design): Nhấp chuột vào đối tượng, nhấn F4 Trong cửa sổ Properties ta chọn thuộc tính của đối tượng và nhập vào giá trị theo

Trang 33

 Thay đổi khi chương trình đang được kích hoạt (RunTime): Viết lệnh trong chương trình để gán giá trị cho thuộc tính của đối tượng theo cú pháp:

<Tên_đối_tương>.<Tên_thuộc_tính> = <Giá_trị>

Chú ý: Có một số thuộc tính của đối tượng chỉ có thể thay đổi giá trị tại thời điểm thiết kế chương trình, ví dụ: ScrollBars của TextBox, Style của ComboBox,… Giới thiệu một số thuộc tính chung (Có ở hầu hết các đối tượng):

 Name: Tên của đối tượng

 Height, Width: Độ cao và độ rộng

 Left, Top: Tọa độ lề trái và tọa độ cạnh trên cùng so với đối tượng chứa nó

 Font, ForeColor, BackColor: Font chữ, mầu chữ, mầu nền

 Enabled: (Yes/No): Quy định có cho hay không cho truy nhập và tác động lên đối tượng

 Visible: (Yes/No): Quy định có hay không hiển thị đối tượng

 TabIndex: Qui định thứ tự nhận focus khi dịch chuyển bằng phím TAB

b) Phương thức (Methods)

Khái niệm: Khả năng mà đối tượng có thể thực hiện được, ví dụ như khả năng phóng to, thu nhỏ hoặc di chuyển tới vị trí khác của đối tượng, …

Mỗi đối tượng đều có khả năng thực hiện được một số các công việc tương ứng Ví

dụ các đối tượng có thể tự dịch chuyển vị trí tới 1 nơi nào đó trên màn hình (Move),

có thể nhận sự hội tụ của con trỏ văn bản (SetFocus),…

Để gọi phương thức của đối tượng ta sử dụng cú pháp sau:

<Tên_đối_tượng>.<Phương_thức> [Danh sách tham số]

Ví dụ:

 textbox1.Focus(): Đưa con trỏ hội tụ vào đối tượng có tên Text1

Trang 34

Giới thiệu 1 số sự kiện:

 Click: Sự kiện xảy ra khi ta click chuột trái lên đối tượng

 Change: Xảy ra khi ta thay đổi nội dung (giá trị) của đối tượng

 MouseMove: Xảy ra khi ta di chuyển con chuột trên đối tượng

4.1.3 Kiến trúc (Architecture) của Windows Forms

Trong mô hình cây thừa kế các lớp đều thừa kế từ lớp Object Dưới đây là danh sách các lớp mà lớp form kế thừa:

Trang 35

Object Lớp cơ sở đầu trong NET, superclass cao nhất từ đó sinh ra con

cháu

MarshalByRefObject Cung cấp các code cần thiết để quản lý vòng đời của objects

Component Cung cấp sự gây dựng căn bản của IComponent interface và cho

phép các chương trình khác nhau dùng chung một object

Control

Đây là base class của mọi component dùng để hiển thị Nó hỗ trợ những khả năng liên hệ đến vóc dáng và công tác hiển thị từ Show, BringtoFront, Font, Color cho đến Dock, Anchor Ngoài

ra nó còn cung cấp các Events của keyboard, mouse và có method WndProc để cho ta truy cập các thông điệp của Windows

ScrollableControl Cung cấp chức năng tự động cuốn khi có chứa bên trong một

control cần thêm chỗ để hiển thị

ContainerControl Cho phép một component chứa các controls khác

Form Cửa sổ chính của một chương trình

4.2 Giới thiệu các điều khiển nội tại cơ bản

4.2.1 Những điểm căn bản của Windows Forms

Trong các bài học và thí dụ trước đây ta đã nói qua, bây giờ ta tóm tắc những điểm căn bản của Windows Forms:

 Một Windows Form thật sự là một class Trong NET không có từ đặc biệt như "form module" để dùng cho nó

 Tất cả mọi form đều thừa kế từ class System.Windows.Forms.Form

 Tất cả các đối tượng kiểu form đều phải được khai báo và khởi tạo tường minh nếu ta muốn sử dụng (load)

Trang 36

 Giống như tất cả các classes trong NET Framework, Windows Forms có các hàm tạo (constructors) và hủy bỏ (destructors)

 Các sự kiện (events) được xử lý bằng nhiều cách và rất linh động Một sự kiện có thể được xử lý bởi nhiều điều khiển (control) cùng một lúc và mỗi điều khiển có một cách xử lý khác nhau Ngược lại, nhiều sự kiện khác nhau

có thể được xử lý bằng một Event Handler duy nhất

Điểu khiển (control): là các đối tượng nằm trong Form Mỗi điều khiển có một tập các thuộc tính (property), phương thức (method), sự kiện (event) cho những mục đích riêng

4.2.2 Làm việc với các điều khiển nội tại thường dùng

4.2.2.1 Form

Form là đối tượng cửa sổ không thể thiếu trong môi trường Windows Form được dùng để chứa các đối tượng khác như nút lệnh (Button), hộp nhập văn bản (TextBox),…

Phân loại:

 Single Document Interface (SDI):

o Chỉ hỗ trợ một document hoặc một cửa sổ tại một thời điểm

o Dạng ứng dụng như NotePad, MS Paint với các đặc tính xử lý ảnh và văn bản giới hạn

o Để làm việc với nhiều tài liệu thì phải mở các instance khác của ứng dụng

o Việc quản lý ứng dụng SDI khá đơn giản

Trang 37

 Multiple Document Interface (MDI)

o Ứng dụng cho phép xử lý nhiều document tại một thời điểm

o Các ứng dụng hiện tại thường là dạng MDI: MS Office, MS Studio.NET, Adobe Photoshop, …

o Ứng dụng MDI thường phức tạp và chức năng xử lý đa dạng:

 Xử lý cùng một dạng document: MS Word, Adobe Photoshop

 Xử lý nhiều dạng document :Visual Studio 6: code, design, image…

a) Thuộc tính (Properties)

Name: Tên của Form Trong một Project tên của các Form phải khác nhau

AcceptButton: Giá trị mà thuộc tính này nhận là tên của một Button trên

Form (Nếu Form có chứa button) Khi đó nếu bạn nhấn phím Enter thì sự

Trang 38

kiện Click của Button mà bạn chọn được thực thi mà không cần nhấn chuột vào Button đó

Autosize: Nhận một trong hai giá trị True hay False

- True: Không cho phép thay đổi kích thước Form mà che đi các điều khiển khác chứa trên Form

- False: Ngược lại

AutoSizeMode: Cho phép thay đổi kích thước của Form hay không? (Khi di

chuyển chuột vào các mép của Form mà hiện nên biểu tượng ↔ là cho phép) Và nhận một trong hai giá trị:

- GrowOnly: Cho phép

- GrowAndShrink: Không cho phép

BackColor: Chọn màu nền cho Form

BackGroundImage: Chọn ảnh làm nền cho Form

CancelButton: Giá trị mà thuộc tính này nhận là tên của một Button trên

Form (Nếu Form có chứa button) Khi đó nếu bạn nhấn phím ESC thì sự kiện Click của Button mà bạn chọn được thực thi mà không cần nhấn chuột vào Button đó (tương tự như thuộc tính AcceptButton )

ControlBox: Nhận một trong hai giá trị True hay False

- True: Cho phép các các nút: MaximizeBox,

MinimizeBox, Close trên Titlebar xuất hiện

- False: Không Cho phép các các nút: MaximizeBox, MinimizeBox, Close trên Titlebar xuất hiện (Khi đó các thuộc tính MaximizeBox, MinimizeBox của Form cũng mất đi)

Font: Chọn kiểu Font chữ cho Form (Khi đó tất cả các điều khiển

được thêm vào Form sẽ có thuộc tính Font giống như thuộc tính Font của Form)

ForeColor: Tương tự như thuộc tính Font nhưng áp dụng đối với màu

Trang 39

FormBorderStyle: Chọn Style cho Form (Có 7 lựa chọn khác nhau)

KeyPreview: Nhận một trong hai giá trị True hay False

- True: Cho phép các sự kiện về bàn phím của Form (KeyUp, KeyDown, KeyPress… của Form) có hiệu lực

- False: Ngược lại

Opacity: Độ trong suốt của Form

b) Sự kiện (Events)

AutoSizeChanged: Xảy ra khi thuộc tính Autosize của Form chuyển từ True

→ False hay ngược lại là False → True

Click: Xảy ra khi người dùng Click chuột vào vùng làm việc thuộc

Form

ControlAdded: Xảy ra khi một điều khiển được Add vào Form

ControlRemoved: Xảy ra khi một điều khiển bị xóa khỏi Form

FormClosed: Xảy ra khi Form đã đóng (Nhấn vào nút X màu đỏ trên

Titlebar)

FormClosing: Xảy ra khi Form đang đóng (2 sự kiện FormClosed và

FormClosing thường dùng trong lập trình CSDL: khi xảy ra sự kiện này thì đóng kết nối CSDL)

KeyDown, KeyPress, KeyUp: Bấm, nhả phím

Một số ví dụ minh họa

Sự kiện FormClosed

//Sự kiện FormClosed - Sự kiện này được gọi khi Form đã đóng

private void frmForm_FormClosed(object sender, FormClosedEventArgs e)

{

MessageBox Show("Sự kiện FormClosed được gọi",

"FormClosed",MessageBoxButtons.OK,MessageBoxIcon.Information);

}

Trang 40

Sự kiện FormClosing

//Sự kiện FormClosing xảy ra khi Form đang đóng (chưa hoàn toàn đóng)

private void frmForm_FormClosing( object sender, FormClosingEventArgs e)

private void frmForm_MouseClick( object sender, MouseEventArgs e)

{ //Nếu bạn không muốn biết người dùng nhấn chuột TRÁI hay PHẢI hay GIỮA thì

khi nhấn bất kì nút chuột nào cũng xảy ra sự kiện MouseClick của Form

if (e.Button == MouseButtons Left)

MessageBox Show( "Sự kiện MouseClick xảy ra khi bạn Click chuột TRÁI" ); else if (e.Button== MouseButtons Middle)

MessageBox Show( "Sự kiện MouseClick xảy ra khi bạn Click chuột GIỮA" ); else if (e.Button== MouseButtons Right)

MessageBox Show( "Sự kiện MouseClick xảy ra khi bạn Click chuột PHẢI" ); }

Ngày đăng: 06/06/2024, 08:47

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN