1. Trang chủ
  2. » Công Nghệ Thông Tin

Đề cương bài giảng Lập trình Winform và Ado.NET - ĐH Sư Phạm Kỹ Thuật Hưng Yên

113 22 0

Đ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 113
Dung lượng 2,6 MB

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

Nội dung

(NB) Microsoft NET gồm 2 phần chính: Framework và Integrated Development Environment (IDE); Framework cung cấp những gì cần thiết và căn bản, chữ Framework có nghĩa là khung hay khung cảnh trong đó ta dùng những hạ tầng cơ sở theo một qui ƣớc nhất định để công việc đƣợc trôi chảy. IDE thì cung cấp một môi trƣờng giúp chúng ta triển khai dễ dàng, và nhanh chóng các ứng dụng dựa trên nền tảng NET.

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN

KHOA CÔNG NGHỆ THÔNG TIN

ĐỀ CƯƠNG HỌC PHẦN: LẬP TRÌNH WINFORM VÀ ADO.NET

Hưng Yên (Tài liệu lưu hành nội bộ)

Trang 2

MỤC LỤC

BÀI 1: TỔNG QUAN 4

1.1 Giới thiệu về Net Framework 4

1.2 Giới thiệu về Windows Form 5

BÀI 2: MỘT SỐ ĐIỀU KHIỂN WINFORM (1) 15

2.1 Label ( ) 15

2.2 TextBox( ) 16

2.3 Button ( ) 17

2.4 CheckBox ( ) 18

2.7 RadioButton ( ) 26

BÀI 3 THỰC HÀNH 1 – CÁC ĐIỀU KHIỂN WINFORM (1) 28

BÀI 4 MỘT SỐ ĐIỀU KHIỂN WINFORM (2) 28

4.1 Timer ( ) 28

4.2 RichTextBox ( ) 29

4.3 PictureBox ( ) 30

4.4 ImageList ( ) 30

4.5 Image ( ) 30

4.6 Điều khiển ListView ( ) 31

4.7 Treeview ( ) 45

4.8 DataGridView 47

BÀI 5: THỰC HÀNH 2 – CÁC ĐIỀU KHIỂN WINFORM (2) 52

BÀI 6: MỘT SỐ ĐIỀU KHIỂN WINFORM (3) 52

6.1 MenuStrip 52

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

BÀI 7 THỰC HÀNH 3 – CÁC ĐIỀU KHIỂN WINFORM (3) 60

BÀI 8 GIỚI THIỆU VỀ ADO.NET 60

8.1 Giới thiệu về ADO.NET 60

8.2 Các mô hình thao tác với CSDL 61

8.3 Đối tượng Connection 62

BÀI 9 THỰC HÀNH 4- KẾT NỐI CSDL VỚI ĐỐI TƯỢNG CONNECTION 64

BÀI 10: ĐỐI TƯỢNG COMMAND, DATAREADER, PARAMETER 64

10.1 Đối tượng Command 64

10.2 Đối tượng DataReader 65

10.3 Đối tượng Parameter 66

10.4 Các thao tác thêm, sửa, xóa dữ liệu theo mô hình hướng kết nối 68 BÀI 11 THỰC HÀNH 5 – THAO TÁC CSDL THEO MÔ HÌNH HƯỚNG KẾT NỐI 75

Trang 3

BÀI 12 ĐỐI TƯỢNG DATA ADAPER VÀ DATASET 75

12.1 Đối tượng DataAdaper 75

12.2 Đối tượng DataSet 75

12.3 Nạp dữ liệu vào DataSet 79

12.4 Cập nhật CSDL bằng DataAdapter 81

12.5 Các thao tác với CSDL theo mô hình phi kết 82

BÀI 13: THỰC HÀNH 6 – THAO TÁC CSDL THEO MÔ HÌNH PHI KẾT NỐI88 BÀI 14 SẮP XẾP VÀ TÌM KIẾM DỮ LIỆU VỚI DATAVIEW 88

14.1 Đối tượng DataView 88

14.2 Tìm kiếm, sắp xếp, trích lọc thông tin với DataView 89

BÀI 15 THỰC HÀNH 7 – THỰC HIỆN THAO TÁC VỚI CƠ SỞ DỮ LIỆU SỬ DỤNG DATAVIEW 92

BÀI 16 LẬP BÁO CÁO VỚI CYSTALREPORT 92

16.1 Giới thiệu 92

16.2 Thiết kế một báo cáo sử dụng Report Design Environment 92

16.3 Preview báo cáo 108

16.4 Nạp và hiển thị Report trong chương trình 109

Trang 4

BÀI 1: TỔNG QUAN 1.1 Giới thiệu về Net Framework

Microsoft NET gồm 2 phần chính : Framework và Integrated Development Environment (IDE) Framework cung cấp những gì cần thiết và căn bản, chữ Framework có nghĩa là khung hay khung cảnh trong đó ta dùng những hạ tầng cơ sở theo một qui ước nhất định để công việc được trôi chảy IDE thì cung cấp một môi trường giúp chúng ta triển khai dễ dàng, và nhanh chóng các ứng dụng dựa trên nền tảng NET Nếu không có IDE chúng ta cũng có thể dùng một trình soạn thảo ví như Notepad hay bất cứ trình soạn thảo văn bản nào và sử dụng command line để biên dịch và thực thi, tuy nhiên việc này mất nhiều thời gian Tốt nhất là chúng ta dùng IDE phát triển các ứng dụng, và cũng là cách dễ sử dụng nhất

Thành phần Framework là quan trọng nhất NET là cốt lõi và tinh hoa của môi trường, còn IDE chỉ là công cụ để phát triển dựa trên nền tảng đó thôi Trong NET toàn bộ các ngôn ngữ C#, Visual C++ hay Visual Basic.NET đều dùng cùng một IDE

Tóm lại Microsoft NET là nền tảng cho việc xây dựng và thực thi các ứng dụng phân tán thế hệ

kế tiếp Bao gồm các ứng dụng từ client đến server và các dịch vụ khác Một số tính năng của Microsoft NET cho phép những nhà phát triển sử dụng như sau:

- Một mô hình lập trình cho phép nhà phát triển xây dựng các ứng dụng dịch vụ web và ứng dụng client với Extensible Markup Language (XML)

- Tập hợp dịch vụ XML Web, như Microsoft NET My Services cho phép nhà phát triển đơn giản và tích hợp người dùng kinh nghiệm

- Cung cấp các server phục vụ bao gồm: Windows 2000, SQL Server, và BizTalk Server, tất cả điều tích hợp, hoạt động, và quản lý các dịch vụ XML Web và các ứng dụng

- Các phần mềm client như Windows XP và Windows CE giúp người phát triển phân phối sâu

và thuyết phục người dùng kinh nghiệm thông qua các dòng thiết bị

- Nhiều công cụ hỗ trợ như Visual Studio NET, để phát triển các dịch vụ Web XML, ứng dụng trên nền Windows hay nền web một cách dể dàng và hiệu quả

Kiến trúc NET Framework

.NET Framework là một platform mới làm đơn giản việc phát triển ứng dụng trong môi trường phân tán của Internet .NET Framework được thiết kế đầy đủ để đáp ứng theo quan điểm sau:

- Để cung cấp một môi trường lập trình hướng đối tượng vững chắc, trong đó mã nguồn đối tượng được lưu trữ và thực thi một cách cục bộ Thực thi cục bộ nhưng được phân tán trên Internet, hoặc thực thi từ xa

- Để cung cấp một môi trường thực thi mã nguồn mà tối thiểu được việc đóng gói phần mềm và

sự tranh chấp về phiên bản

Trang 5

- Để cung cấp một môi trường thực thi mã nguồn mà đảm bảo việc thực thi an toàn mã nguồn, bao gồm cả việc mã nguồn được tạo bởi hãng thứ ba hay bất cứ hãng nào mà tuân thủ theo kiến trúc NET

- Để cung cấp một môi trường thực thi mã nguồn mà loại bỏ được những lỗi thực hiện các script hay môi trường thông dịch

- Để làm cho những người phát triển có kinh nghiệm vững chắc có thể nắm vững nhiều kiểu ứng dụng khác nhau Như là từ những ứng dụng trên nền Windows đến những ứng dụng dựa trên web

- Để xây dựng tất cả các thông tin dựa triên tiêu chuẩn công nghiệp để đảm bảo rằng mã nguồn trên NET có thể tích hợp với bất cứ mã nguồn khác

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

.NET Framework có hai thành phần chính: Common Language Runtime (CLR) và thư viện lớp NET Framework CLR là nền tảng của NET Framework Chúng ta có thể hiểu runtime như là một agent quản lý mã nguồn khi nó được thực thi, cung cấp các dịch vụ cốt lõi như: quản lý bộ nhớ, quản lý tiểu trình, và quản lý từ xa Ngoài ra nó còn thúc đẩy việc sử dụng kiểu an toàn và các hình thức khác của việc chính xác mã nguồn, đảm bảo cho việc thực hiện được bảo mật và mạnh mẽ

Thư viện lớp, một thành phần chính khác của NET Framework là một tập hợp hướng đối tượng của các kiểu dữ liệu được dùng lại, nó cho phép chúng ta có thể phát triển những ứng dụng từ những ứng dụng truyền thống command-line hay những ứng dụng có giao diện đồ họa (GUI) đến những ứng dụng mới nhất được cung cấp bởi ASP.NET, như là Web Form và dịch vụ XML Web

1.2 Giới thiệu về Windows Form

Windows Form là ứng dụng có giao diện đồ họa chạy trên hệ điều hành Window (GUI -

Graphical User Interface), Windows Forms là ứng dụng chạy trên máy tính của người dùng (DeskTop)

Trang 6

Khác với Web Forms là ứng dụng chạy trên Web Forms Khi ứng dụng chạy thì hiển thị kết quả lên trình

duyệt Windows Forms là một phần của kiến trúc NET

C3 Chọn công cụ New Project trên thanh Standart

Bước 1: Khởi động VS2008 và chọn Fille  New Project …

Bước 2: Chọn Ứng dụng dạng Windows Forms Application, chọn nơi lữu trữ Project (xem hình)  nhấn OK

Trang 7

1.2.2 Thêm và điều chỉnh các điều khiển

Sau khi tạo dự án, một Form được tạo ra như hình bên dưới:

Để thêm các điều khiển vào Form, chúng ta có thể kéo các điều khiển bên công cụ Toolbox vào Form đó

Trang 8

Để chỉnh sửa các điều khiển (thêm, thay đổi kích thước, xóa…) chúng ta có thể chọn các điều khiển nhấn nút Delete nếu muốn xóa, nếu muốn thay đổi kích thước thì chúng ta chỉ việc chọn vào điều khiển và kéo điều khiển có kích thước như mong muốn:

1.2.3 Tải các tập tin

Visual Studio hỗ trợ làm việc với nhiều tập tin (xml, Excel, Word…) với những tập tin đơn giản chúng ta có thể chỉnh sửa trực tiếp trên bộ công cụ này Các file này hiển thị trên công vụ Solution Explorer:

Trang 9

Để chỉnh sửa nội dung file chúng ta có thể click trực tiếp vào file và sửa trên hộp thoại hiện ra:

1.2.4 Thay đổi kích thước các Form

Form (hay còn gọi điều khiển Form) dùng để chứa các điều khiển khác (Buttons, Label…)

Trong một dự án có thể có nhiều Form:

Trang 10

Tùy theo mỗi ứng dụng khác nhau mà chúng ta có các yêu cầu về kích thước Form khác nhau cho phù hợp với chương trình Để thay đổi kích thước Form chúng ta chỉ cần chọn Form kéo một trong các ô vuông hiện ra ở bên mép của Form:

Hoặc chúng ta có thể thay đổi trực tiếp kích thước của Form thông qua thuộc tính Size:

C1 Vào menu File | Open | Project / Solution C2

Ctrl + Shift + O

C1 Vào menu File | Save All

C2 Chọn công cụ Save All trên thanh Standart

d Đóng Solution: Vào menu File | Close Solution

1.2.5 Màn hình giao diện của Windows Forms

a Cửa sổ thiết kế Form (Designer):

Trang 11

b Cửa sổ thiết viết code:

1.2.6 Các thao tác với Form

a Thêm một Form mới vào Project:

b1 C1 Vào menu Project | Add New Item …

C2 Chọn công cụ Add New Item trên thanh Standart b2

Khai báo

+ Categories: chọn Windows Forms

+ Templates: chọn Windows Form

+ Name: đặt tên Form b3

Nhắp Add

b Thêm một Form có sẵn vào Project: b1

Vào menu Project | Add Existing Item … b2

Chọn Form

b3 Nhắp Add

b1 Chọn Form cần gỡ bỏ (ở cửa sổ Solution Explorer)

b2 Vào menu Edit | Delete

Trang 12

d Lưu Form

Vào menu File | Save Form.cs

Ctrl + S

 Ghi chú

- Ta kéo vào form các đối tượng như: Label, TextBox, Button, …

+ Label, TextBox, Button, … được gọi là control hay còn gọi là component

+ Form được gọi là control “chứa”

- Khi thay đổi nội dung của Label, TextBox, Button, … ta thay đổi vào Text Text được

gọi là Property của control

Các control sử dụng trên Windows Forms dùng namespace System.Windows.Forms

Properties là những thông tin mà ta có thể thay đổi nội dung, cách trình bày của người thiết

Anchor Có 4 hướng được định nghĩa là: top, bottom, left, right để cố định

(neo) Khi control chứa nó thay đổi kích thước thì nó sẽ bị thay đổi kích thước nếu nếu các hướng left / right / top / bottom bị cố định (neo)

BackColor Màu nền của control

Bottom Là khoảng cách theo chiều dọc từ cạnh đáy của control đến cạnh

trên của control chứa nó

Dock Giống như Anchor nhưng việc cố định (neo) này theo một cạnh nào

đó của control (hoặc cả 4 cạnh) với control chứa nó

Enabled Control được phép tương tác (True) hay không được phép tương

tác (False)) với người dùng

ForeColor Màu chữ của control

Height Là chiều cao của control tính từ cạnh trên của control đến cạnh dưới của

control

Left Là khoảng cách theo chiều ngang từ cạnh trái của control đến cạnh trái

của control chứa nó

Name Tên của control

Parent Chỉ đến control chứa control hiện hành

Right Là khoảng cách theo chiều ngang từ cạnh phải của control đến cạnh trái

của control chứa nó

TabIndex Thứ tự focus khi nhấn phím Tab (trên bàn phím) của control so với các

control khác cùng nằm trong control chứa nó

TabStop Chỉ định control có được phép “bắt” (True) / không được phép “bắt”

(False) phím Tab Nếu không được phép thì TabIndex cũng không dùng được

Trang 13

Tag Là nhãn phân biệt giữa các control giống nhau trong cùng form

Text Nội dung hiện trong control

Top Là khoàng cách theo chiều dọc từ cạnh trên của control đến cạnh trên

của control chứa nó

Visible Cho phép control hiện (True) / không hiện (False) khi chạy ứng dụng

Width Là chiều rộng của control tính từ cạnh trái của control đến cạnh phải của

control

Xác định giá trị thuộc tính cho điều khiển, chọn điều khiển cần thiết lập thuộc tính, hiển thị cửa sổ Property (Nhấn phím F4, hoặc nhấn chuột phải, chọn Show property) , chọn biểu tượng thuộc tính của Control và thay đổi giá trị các thuộc tính theo nhu cầu

Mỗi một control có một tập các phương thức, mà control có thể thực hiện được và có

c Events (Sự kiện) của control

Sự kiện là những phản ứng của đối tượng Nói cách khác, sự kiện là những tín hiệu phát ra khi người dùng thao tác trên đối tượng Nhờ có event, người lập trình sẽ nhận được những tín hiệu và xử lý những tín hiệu đó để phản hồi lại cho người dùng, tạo nên sự nhịp nhàng cho chương trình

Bảng sau trình bày một số sự kiện thường dùng

Click Gọi đến khi control bị Click Trong một vài control, event này cũng xảy

ra khi người dùng nhấn phím Enter

DoubleClick Gọi đến khi control bị Double-Click Trong một vài control, event này

không báo giờ được gọi Ví dụ: control Button

DragDrop Gọi đến khi việc “Drag and Drop” được hoàn tất

DragEnter Gọi đến khi đối tượng vừa được “Drag” đến biên của control

DragLeave Gọi đến khi đối tượng vừa được “Drag” ra ngoài biên của control

DragOver Gọi đến khi đối tượng được “Drag” bên trong control

KeyDown Gọi đến khi vừa bấm một phím bất kỳ từ 1 control đang focus

Sự kiện này luôn được gọi trước sự kiện KeyUp

Trang 14

KeyPress Gọi đến khi vừa bấm một phím bất kỳ từ 1 control được focus

Sự kiện này được gọi sau sự kiện KeyUp

KeyUp Gọi đến khi vừa bấm một phím bất kỳ rồi thả ra từ 1 control đang focus

Sự kiện này luôn được gọi sau sự kiện KeyDown

GotFocus Gọi đến khi control được focus

LostFocus Gọi đến khi control bị mất focus

MouseDown Gọi đến khi con trỏ chuột nằm trên 1 control và nút chuột được nhắp

nhưng chưa thả ra

MouseMove Gọi đến khi con trỏ chuột đi qua 1 control

MouseUp Gọi đến khi con trỏ chuột nằm trên 1 control và nút chuột vừa được thả

Paint Gọi đến khi control được vẽ

Validated Gọi đến khi control focus, property CaucesValidation được đặt là true

và sau khi gọi việc kiểm tra bằng Validating

Validating Gọi đến khi control mất focus, property CaucesValidation được đặt là

true

Chọn sự kiện để viết mã lệnh cho control, chọn điều khiển cần thiết lập thuộc tính, hiển thị cửa sổ Property (Nhấn phím F4, hoặc nhấn chuột phải, chọn Show property), chọn biểu tượng sự kiện trên cửa

sổ Property, sau đó chọn sự kiện của điều khiển cần thực hiện

 Chú ý: Để dừng chương trình chúng ta sử dụng các câu lệnh sau

this.Close(); // Đóng form hiện hành

Application.Exit // Kết thúc ứng dụng

Trang 15

BÀI 2: MỘT SỐ ĐIỀU KHIỂN WINFORM (1) 2.1 Label ( )

- Công dụng: Là điều khiển dùng để hiển thị tiêu đề hay văn bản mang tính mô tả, mà người dùng

không thể thay đổi Label dùng để định danh cho các điều khiển khác trên Form được gọi là Label mô tả Label dùng để hiển thị kết quả đầu ra

- Thêm label vào Form: Để thêm điều khiển Label vào Form ta chọn biểu tượng label trên thanh Toolbox, sau đó kéo thả vào form Với các điều khiển khác cũng thực hiện tương tự

- Thuộc tính hay dùng:

AutoSize Cho phép tự động thay đổi kích thước của Label để

vừa với nội dung BoderStyle Xác định hình dáng đường viền của Label

Font Tên Font, kiểu và kích thước văn bản được hiển thị

trên Label

Location Vị trí của Label trên form tương ứng với góc bên

trái của form

Trang 16

Size Chỉ ra chiều rộng và chiều cao của Label

TextAlign Chỉ ra cách căn văn bản trong Label

- Xác định giá trị thuộc tính cho điều khiển Label (tương tự cho các điều khiển khác): Chọn điều khiển, hiển thị cửa sổ Property (Nhấn phím F4, hoặc nhấn chuột phải, chọn Show property) và thay đổi giá trị các thuộc tính theo nhu cầu

2.2 TextBox( )

- Chức năng: Điều khiển Textbox cho phép bạn nhập và hiển thị dữ liệu

- Một số thuộc tính thường dùng:

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

- True: Khi nhấn phím Tab thì con trỏ (Focus) chỉ

di chuyển bên trong Textbox (Với điều kiện thuộc tính Multiline=True)

- False: Khi nhấn Tab thì Focus di chuyển qua lại giữa các điều khiển trên Form

→ Thuộc tính này hay đặt bằng True trong các ứng dụng soạn thảo văn bản

ContextMenuStrip Chọn Menu ngữ cảnh khi nhấn chuột phải vào

Textbox

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

- True: Không cho phép các thuộc tính:

SelectionStart…có hiệu lực

- False: Ngược lại

- True: Cho phép nhập và hiển thị giá trị của Textbox trên nhiều dòng (người dùng có thể nhìn thấy toàn bộ giá trị Text của nó)

- False: Cho phép nhập/hiển thị giá trị của Textbox trên một dòng

Trang 17

PasswordChar Hiển thị giá trị của Textbox dưới dạng các kí tự mà

bạn thay thế (kí tự do người dùng nhập vào: *, # ) ReadOnly

ScrollBars Cho phép hiển thị thanh trượt hay không? (Với điều

kiện thuộc tính Multiline=True mới nhìn thấy thanh cuộn)

- True: có thể Undo lại được (như Word)

- False: Ngược lại Các thuộc tính SelectionText o SelectedText

Select Lấy ra một chuỗi trong Textbox (xem Code)

SelectAll Lấy tất cả giá trị của Textbox

2.3 Button ( )

- Công dụng: Dùng để thực thi lệnh Khi nhắp chuột lên button, chương trình nhận được tín hiệu

Click và lệnh được thi hành

- Thuộc tính:

Trang 18

Minh họa thuộc tính Text của Textbox:

private void btTextbox_Click(object sender, EventArgs e)

{ //Trước khi gán thuộc tính text

MessageBox.Show("Giá trị textbox trước khi gán: "+ textBox1.Text);

Minh họa thuộc tính SelectedText

private void btTextbox_Click(object sender, EventArgs e)

{

//Thuộc tính SelectedText lấy ra một chuỗi mà bạn bôi đen (Chọn) //Bạn hãy bôi đen một vài từ trong Textbox sau đó Click vào Button này sẽ hiển thị

//Message thông báo từ bạn chọn

string str = textBox1.SelectedText;

MessageBox.Show("Từ bạn vừa chọn (bôi đen) là: "+str);

}

Minh họa thuộc tính SelectionStart và SelectionLength

private void btTextbox_Click(object sender, EventArgs e)

{

//Thuộc tính này dùng trong tìm kiếm rất nhiều

//Thuộc tính SelectionStart: Ví trí bắt đầu Select

//Thuộc tính SelectionLength: Chiều dài của vùng lựa chọn

Trang 19

Minh họa thuộc tính CanUndo và phương thức Undo

private void btTextbox_Click(object sender, EventArgs e)

{

//Nếu có thể Undo (có nghĩa: Bạn phải gõ văn bản vào Textbox rồi sửa, xóa )

//Mới có thể Undo lại được

if (textBox1.CanUndo)

textBox1.Undo();

}

Minh họa phương thức Select

private void btTextbox_Click(object sender, EventArgs e)

{

//Cú pháp chung: txtNoiDung.Select(Start, Length);

//Mục đích để lấy về một chuỗi từ từ vị trí nào và chiều dài của chuỗi dược chọn (tất nhiên: bôi đen vùng này)

//-> Phương thức này tương đương với sử dụng 2 thuộc tính SelectionStart và

Trang 20

//textBox1.SelectionStart = 5;

}

Minh họa phương thức AppendText

private void btTextbox_Click(object sender, EventArgs e)

if (e.KeyChar >= '0' && e.KeyChar <= '9') e.Handled = false;//Handled: Được xử lý else

e.Handled = true;

}

Xử lý chỉ cho phép Textbox nhập số (sự kiện KeyPress của Textbox) – Cách 2

private void txtNoiDung_KeyPress(object sender, KeyPressEventArgs e) {

if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar)) e.Handled = true;

Trang 21

//(các phím mũi tên,Delete,Insert,backspace,space bar…) hay không, mục đích dùng hàm này là để cho phép người dùng xóa số trong trường hợp nhập sai }

 Ví dụ :

Khởi tạo một ứng dụng Windows Forms Application, lưu với tên là Ví dụ 1 như sau:

* Yêu cầu:

- Nhập:

+ Username vào TextBox Tên đăng nhập (Name: txtUser)

+ Password vào TextBox Mật khẩu (Name: txtPass)

- Chọn hoặc không chọn ô CheckBox Ghi nhớ (Name: chkNho)

- Nhắp button Đăng nhập thì hiện ra hộp thông báo chứa Tên đăng nhập, Mật khẩu; Và

“Bạn có ghi nhớ” (nếu chkNho có đánh dấu chọn)

- Nhắp button Xóa thì xóa trống TextBox Tên đăng nhập và TextBox Mật khẩu, đồng

thời di chuyển con trỏ vào txtUser

Trang 22

1 - Thiết kế form như mẫu

(txtsSo1, txtSo2, txtKQ, btnCong, btnTru, btnNhan, btnChia, btnXoa)

- Viết chương trình làm các phép toán: cộng, trừ, nhân, chia cho các button btnCong, btnTru, btnNhan, btnChia

- Xóa: Xóa trắng các TextBox

- Thêm vào button Dừng (btnDung), khi nhắp vào btnDung thì dừng chương trình

Trang 23

3 Viết chương trình giải phương trình bậc hai: ax2 + bx + c = 0

4 Viết chương trình nhập vào: họ tên (txtHoTen), nữ (chkNu), điểm văn (txtVan), điểm toán (txtToan), điểm ngoại ngữ (txtNN)

- Nhắp vào nút Tính (btnTinh) thì in ra điểm thấp nhất (txtDTN), điểm kết quả (txtDKQ),

xếp loại (txtXL) Biết rằng:

+ Điểm thấp nhất: txtDTN là điểm thấp nhất trong 3 điểm: văn, toán, ngoại ngữ

+ Điểm thêm: DThem = 0.5 nếu là nữ; DThem = 0 nếu là nam

+ Điểm kết quả: txtKQ = txtVan * 2 + txtToan * 2 + txtNN + DThem

+ Xếp loại theo tiêu chuẩn:

Giỏi: nếu txtKQ >= 40 và txtDTN >= 7

Khá: nếu txtKQ >=35 và txtDTN >= 6

Trung bình: nếu txtKQ >= 25 và txtDTN >= 5

Yếu: các trường hợp còn lại

- Nhắp vào nút Xóa (btnXoa) thì xóa hết các nội dung trong các TextBox

- Thêm vào button Dừng, khi nhắp vào button này thì dừng chương trình

5 Viết chương trình tạo một ứng dụng gồm:

- Form1: Màn hình chính có 5 button: Bài tập 1 (btnBT1), Bài tập 2 (btnBT2), Bài tập 3

(btnBT3), Bài tập 4 (btnBT4), Thoát (btnThoat)

+ Khi nhắp vào Button Bài Tập 1: mở Form2

+ Khi nhắp vào Button Bài Tập 2: mở Form3

+ Khi nhắp vào Button Bài Tập 3: mở Form4

+ Khi nhắp vào Button Bài Tập 4: mở Form5

- Form2: thực hiện bài tập 1 Bổ sung Button Trở về để đóng Form2

- Form3: thực hiện bài tập 2 Bổ sung Button Trở về để đóng Form3

- Form4: thực hiện bài tập 3 Bổ sung Button Trở về để đóng Form4

- Form5: thực hiện bài tập 4 Bổ sung Button Trở về để đóng Form5

Điều khiển tập hợp:

Là một kiểu dữ liệu dùng lưu trữ nhiều phần tử có cùng đặc tính Ví dụ: Mảng, Tập các nút lệnh chứa trên Form, tập các phần tử (Item) của Combobox, Listbox………

Các thuộc tính, phương thức lớp Collection

 Count/Length: Lấy về số phần tử của tập hợp

 Add, AddRange: Thêm phần tử vào tập hợp

 Remove, RemoveAt: Xóa phần tử khỏi tập hợp

 Clear: Xóa toàn bộ các phần tử khỏi tập hợp

 Insert: Chèn một phần tử vào tập hợp (Khác với Add luôn thêm phần tử mới vào cuối tập

hợp, Insert thêm vào một vị trí xác định nào đó trong tập hợp)

 Items[i]: Lấy một phần tử thứ i trong tập hợp

Trang 24

Duyệt các phần tử trong tập hợp

Để duyệt các phần tử trong tập hợp người ta thường sử dụng vòng lặp ForEarch

foreach (biến in biến_Tập_hợp)

* Nhập giá trị vào ListBox: <Ten_ListBox>.Items.Add ("Chuỗi") ;

* Lấy giá trị trong ListBox: <Ten_ListBox>.SelectedItem.ToString() ;

Trang 25

- Nhắp button btnOk (Ok) sẽ hiện trong txtKQ tên website đƣợc chọn ở lstWeb

- Nhắp button btnReset (Reset) sẽ xóa trống txtKQ

- Nhắp đúp vào button Ok rồi thêm đoạn code sau:

this.txtKQ.Text = "Bạn đã chọn website "+ this.lstWeb.SelectedItem.ToString();

* Cải tiến:

Chọn sự kiện FormLoad đƣa đoạn mã lệnh sau vào sự kiện

this.lstWeb.Items.Add("Tuổi trẻ"); this.lstWeb.Items.Add("Thanh niên");

DisplayMember Gán nội dung thể hiện trên ComboBox

Items Liệt kê các mục giá trị trong ComboBox

SelectedItem Lấy Item đƣợc chọn

SelectedText Lấy nội dung thể hiện trên ComboBox từ DisplayMember

SelectedValue Lấy giá trị từ ValueMember

ValueMember Gán giá trị cho ComboBox

Trang 26

+ Radio Button (rad1): chữ thường

+ Radio Button (rad2): chữ HOA

- Nhắp vào Button Kết quả (btnKQ) sẽ in họ và tên bằng kiểu chữ được chọn trong TextBox txtKQ

- Nhắp vào Button Xóa (btnXoa) sẽ xóa trống txtHoTen, txtKQ, rad1 được chọn và đưa con trỏ vào ô TextBox txtHoTen

+ Text: Đổi kiểu chữ

- Nhắp đúp vào nút Kết quả rồi thêm đoạn code sau:

Trang 28

BÀI 3 THỰC HÀNH 1 – CÁC ĐIỀU KHIỂN WINFORM (1) BÀI 4 MỘT SỐ ĐIỀU KHIỂN WINFORM (2)

4.1 Timer ( )

- Công dụng: Quy định khoảng thời gian định kỳ để thực hiện một công việc

- Thuộc tính:

Thuộc tính Mô tả

Enabled Bật / tắt chế độ hẹn thời gian của điều khiển Timer

Interval Khoảng thời gian định kỳ tính bằng đơn vị ms

Ví dụ:

* Tạo một Form với tên HenGio như sau:

* Yêu cầu:

- Tạo Timer1 có Enabled = false; Interval = 1000

- Khởi tạo biến đếm i = 20

- Button Bắt đầu (btnBatDau): dùng để bật chế độ hẹn thời gian

- Button Dừng (btnDung): dùng để dừng chương trình

- Timer1: Đếm ngược từ 20 đến 1 và xuất ra dòng chữ “Hết giờ”

+ Xuất giá trị biến đếm i ra Label lblDongHo

+ Giảm biến i xuống 1 đơn vị

+ Khi biến đếm i < 0 thì tắt chế độ hẹn giờ và xuất “Hết giờ!” ra Label lblDongHo

- Nhắp đúp vào nút Timer1 (Timer1_Tick) rồi thêm đoạn code sau:

this.lblDongHo.Text = i.ToString(); i ;

if (i < 0)

this.timer1.Enabled = false;

Trang 29

4.2 RichTextBox ( )

- Công dụng: Điều khiển RitchTextBox dùng để lưu trữ và hiển thị văn bản theo nhiều định

dạng khác nhau (định dạng chuẩn là rtf)

Điều khiển RitchTextBox có rất nhiều các thuộc tính giống Textbox nói riêng

và các điều khiển khác nói chung Ý nghĩa của các thuộc tính này là giống nhau với

các điều khiển Ở đây chúng ta xét một số thuộc tính khác của RitchTextBox

Thuộc tính Mô tả

ReadOnly Không cho soạn thảo, chỉ đọc

SelectedText Lấy về chuỗi được lựa chọn (chuỗi mà chúng ta bôi đen)

SelectionStart,

SelectionLength

Lấy về một chuỗi với vị trí bắt đầu và chiều dài, hai thuộc tính này thường đi với nhau

SelectionFont Lấy thông tin về Font của một chuỗi được lựa chọn (bôi đen)

SelectionColor Lấy thông tin về Color của chuỗi được bôi đen được lựa chọn

CanUndo Trả lại hai giá trị True/False

- True: có thể Undo lại được (như Word)

- False: Ngược lại

CanRedo Tương tự như thuộc tính CanUndo

- Phương thức thường dùng

Tên phương thức Ý nghĩa

AppendText Nối một chuỗi vào RitchTextBox

Copy Xử lý phần nội dung bôi đen (như Word)

Cut

Paste

Find Tìm kiếm một xâu trong RitchTextBox

Focus Chuyển Focus vào RitchTextBox

LoadFile Đọc nội dung một file vào RitchTextBox

SaveFile Ghi nội dung của RitchTextBox ra file

Select Lấy ra một chuỗi trong RitchTextBox (tương tự

TextBox) SelectAll Lấy tất cả nội dung của RitchTextBox

Redo Xử lý Undo, Redo như Word

Trang 30

Image Gán kiểu Image hiển thị trên PictureBox

ImageLocal Gán đường dẫn cho ảnh hiển thị trên PictureBox

SizeModel Chọn kiểu kích thước của PictureBox

4.4 ImageList ( )

- Công dụng: Dùng để quản lý tập các Image (Image, Icon…) Thường sử dụng điều khiển

ImageList với các điều khiển khác: ListView, TreeView, Toolbar, NotifyIcon

Thuộc tính Mô tả

Images Chứa danh sách các Image Có thể đưa các Image hay Icon vào thông qua

giao diện (Cửa sổ Properties) hay mã lệnh (Tập các Image trong ImageList là một Collection nên nó có đầy đủ các phương thức của Collection)

Truy xuất tới một Image trong ImageList theo cú pháp:

Trang 31

* Yêu cầu:

- Tạo PictureBox, và các Button như thiết kế

- Button Xem (btnXem): dùng để hiển thị ảnh trong 1 đường dẫn trên máy tính

- Button Không xem (btnKhongXem): dùng để không hiển thị ảnh

* Hướng dẫn:

Thiết kế Form như yêu cầu, trong đó form có các thuộc tính sau:

- Trong sự kiện FormLoad viết câu lệnh sau

private void FrmPicture_Load(object sender, EventArgs e)

4.6 Điều khiển ListView ( )

- Công dụng: Điều khiển ListView dùng để trình bày các phần tử dạng danh sách với nhiều hình

dạng khác nhau

- Một số khái niệm liên quan đến ListView

Trang 32

Minh họa về ListView

Cột trong ListView

Trang 33

Khái niệm ColumnHeader

Khái niệm ListViewItem

Trang 34

Khái niệm SubItems

Minh họa về Group

- Một số thuộc tính thường dùng:

CheckBoxes Nhận một trong hai giá trị True hay False (mặc định là False)

- True: Hiển thị một checkbox bên cạnh phần tử

đầu tiên của mỗi hàng (1 hàng = 1 ListviewItem)

trong Listview

Trang 35

- False: Ngược lại

Columns Tập các cột trong ListView là một Collection Thông qua thuộc

tính này có thể thêm các cột vào Listview (Có thể thêm các cột vào Listview thông qua giao diện đồ họa hay có thể viết Code

Chú ý: Phải đặt thuộc tính View là Detail thì bạn mới có thể nhìn

thấy các cột này) ContextMenuStrip Gắn một menu ngữ cảnh với điều khiển ListView (khi nhấn

chuột phải vào Listview thì sẽ hiển thị menu này) FullRowSelect Nhận một trong hai giá trị True hay False

- True: Cho phép chọn (bôi đen) cả hàng (của phần

tử đang được chọn Chú ý: Thuộc tính View = Detail)

- False: Ngược lại GridLines Nhận một trong hai giá trị True hay False

- True: Hiển thị lưới bao quanh và ngăn cách các hàng (Chỉ có hiệu lực nếu thuộc tính View = Detail)

- False: Ngược lại

Group Khai báo nhóm để phân loại các phần tử sau khi trình bày trên

điều khiển Listview HeaderStyle Đây là thuộc tính cho phép chọn Style cho Listview trong chế độ

View là Report

Items Là một Collection Cho phép tạo ra các giá trị cho các hàng, cột

trong Listview (tất nhiên có thể dùng giao diện đồ họa hay viết Code)

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

- True: Cho phép thay đổi (sửa) Text của các phần

tử (các Ô)

- False: Ngược lại LabelWap Nhận một trong hai giá trị True hay False

- True: Chuỗi DHSPKTHY sẽ tự động xuống hàng khi chiều dài không đủ để trình bày

- False: Ngược lại

Trang 36

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

- True: Cho phép chọn nhiều hàng (ListviewItem) Mặc định là True

- False: Không cho phép chọn nhiều hàng LargeImageList Đối tƣợng ImageList chứa danh sách các Image theo chỉ số

(Index) từ 0 đến n-1 Đƣợc sử dụng nếu thuộc tính View là LargeIcon

SmallImageList Đối tƣợng ImageList chứa danh sách các Image theo chỉ số

(index) từ 0 đến n-1 Đƣợc sử dụng nếu thuộc tính View là SmallIcon

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

- True: Cho phép xuất hiện thanh trƣợt trong Listview (Khi số ListViewItem nhiều và vƣợt qua chiều cao của ListView)

- False: Ngƣợc lại Sorting Sắp xếp giá trị các hàng (ListViewItem) trong ListView (Chỉ có

hiệu lực nếu thuộc tính View là Detail) Thuộc tính này nhận một trong các giá trị sau

 None: Không Sắp xếp

 Ascending: Sắp xếp tăng

 Descending: Sắp xếp giảm

SelectedItems Trả về danh sách các phần tử đƣợc chọn (bôi đen)

CheckedItems Trả về danh sách các phần tử đƣợc check (tất nhiên thuộc tính

Trang 37

- Một số phương thức thường dùng:

RemoveAt Xóa bỏ một cột có chỉ số (ở vị trí) nào đó

ItemChecked Khi Check vào biểu tƣợng Checkbox của mỗi phần tử trên

điều khiển ListView

Giả sử chúng ta có một form có tên: frmListView Trên đó có chứa một số điều khiển sau:

 Điều khiển ListView có tên listView1 (Chúng ta để tất cả các thuộc tính của listView1 với

giá trị mặc định)

 Button btCheck: minh họa việc duyệt các hàng đƣợc check trên ListView

 Buttonbt RemoveAtColumns: Minh họa xóa một cột trong ListView

 Buttonbt RemoveAtItems: Minh họa xóa một hàng trong ListView

 Buttonbt ShowFile: Minh họa hiển thị tất cả các file trong một thƣ mục nên ListView

 Button btGroup: Minh họa về Group trong ListView

Chúng ta sẽ minh họa sử dụng ListView qua sự kiện Click của các button trên

Tạo các cột, hàng cho ListView bằng code

private void frmListView_Load(object sender, EventArgs e) {

//Đặt một số thuộc tính cho điều khiển ListView1 bằng code //Bạn chỉ có thể nhìn thấy các cột nếu đặt thuộc tính View=Detail listView1.View = View.Details;

Trang 38

listView1.Columns.Add("Họ và tên", 100, HorizontalAlignment.Center);

listView1.Columns.Add("Quê quán", 100, HorizontalAlignment.Center);

listView1.Columns.Add("Lớp", 100, HorizontalAlignment.Center);

//Cách 2: Có thể thêm vào theo cách này: Sử dụng ColumnHeader

ColumnHeader ch = new ColumnHeader("chNgaySinh");

ch.Text = "Ngày sinh";

ch.TextAlign = HorizontalAlignment.Center;

ch.Width = 100;

listView1.Columns.Add(ch);

//Thêm hàng thứ nhất vào ListView

string[] Them = new string[] { "Nguyễn Văn Hải", "Hƣng Yên", "TK4N1", 03-1987" };

ListViewItem lv = new ListViewItem(Them);

Trang 39

Duyệt xem những hàng nào được Check

private void btCheck_Click(object sender, EventArgs e)

{

//Bạn phải tạo ra một Listview như mục 7.1 trước đã

MessageBox.Show("Tên các sinh viên được Check là","Check",MessageBoxButtons.OK);

//Duyệt các phần tử được Check thông qua thuộc tính CheckedItems

foreach (ListViewItem lvi in listView1.CheckedItems)

Xóa một Cột tại vị trí nào đó

private void btRemoveAtColumns_Click(object sender, EventArgs e)

Trang 40

Hình 7.2: Columns ↔ Collection

Xóa một hàng tại một vị trí nào đó

→ Hoàn toàn tương tự như xóa một cột

private void btRemoveAtItems_Click(object sender, EventArgs e)

Ngày đăng: 08/05/2021, 17:18

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

TÀI LIỆU LIÊN QUAN

w