1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Lập trình Windows Form (Cao đẳng CNTT) - Nguồn: BCTECH

214 114 2

Đ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 214
Dung lượng 7,41 MB

Nội dung

Tuy nhiên có điềm khác biệt với Panel là TabPage hỗ trợ thuộc tính Text, chuỗi mô tả được thiết lập trong thuộc tính Text sẽ hiển thị trên tab của TabPage:. Hình 18.9[r]

(1)

UBND TỈNH BÀ RỊA – VŨNG TÀU

TRƯỜNG CAO ĐẲNG KỸ THUẬT CÔNG NGHỆ

GIÁO TRÌNH

MƠ ĐUN: LẬP TRÌNH WINDOWS FORMS NGHỀ: CƠNG NGHỆ THƠNG TIN

TRÌNH ĐỘ: CAO ĐẮNG

(Ban hành kèm theo Quyết định số: /QĐ-CĐKTCN

(2)(3)

TUYÊN BỐ BẢN QUYỀN

Nhằm đáp ứng nhu cầu học tập nghiên cứu cho giảng viên sinh viên nghề Công nghệ Thông tin trường Cao đẳng Kỹ thuật Công nghệ Bà Rịa – Vũng Tàu, thực biên soạn tài liệu Lập trình Windows Forms

Tài liệu biên soạn thuộc loại giáo trình phục vụ giảng dạy học tập, lưu hành nội Nhà trường nên nguồn thơng tin phép dùng nguyên trích dùng cho mục đích đào tạo tham khảo

(4)

LỜI GIỚI THIỆU

Giáo trình Lập trình Windows Forms biên soạn dựa khung chương trình đào tạo Cao đẳng nghề Công nghệ Thông tin Trường Cao đẳng Kỹ thuật Công nghê Bà Rịa – Vũng Tàu phê duyệt

Bên cạnh nhằm giúp cho người học kiến thức kỹ cần thiết để thiết kế lập trình ứng dụng nhỏ sống ngày

Tác giả nghiên cứu số tài liệu, trang web liên quan kết hợp với kinh nghiệm làm việc, giảng dạy thực tế để biên soạn giáo trình

Trong giáo trình bao gồm sau: Bài 1: Giới thiệu tổng quan

Bài 2: Các thành phần

Bài 3: Sử dụng câu lệnh nhập xuất bản, cấu trúc điều khiển if Bài 4: Sử dụng cấu trúc lựa chọn switch case, for, for each Bài 5: Sử dụng cấu trúc vòng lặp while, do…while

Bài 6: Sử dụng câu lệnh break, continue, goto Bài 7: Hàm

Bài 8: Thiết kế lớp đối tượng

Bài 9: Định nghĩa thuộc tính, phương thức hành động cho lớp đối tượng

Bài 10: Sử dụng Form, MenuStrip

Bài 11: Sử dụng Button, Label, TextBox

Bài 12: Sử dụng Checkbox, RadioButton, GroupBox Bài 13: Sử dụng ComboBox, ListBox

(5)

Bài 16: Sử dụng PictureBox, ToolTip

Bài 17: Sử dụng CheckListBox, NumericUpDown Bài 18: Sử dụng Panel, SplitContainer, TabControl Bài 19: Tạo kết nối, đóng kết nối sở liệu Bài 20: Truy xuất sở liệu Dataset Bài 21: Hiển thị sở liệu DataGridView Bài 22: Truy xuất sở liệu BindingSource Bài 23: Hiển thị sở liệu BindingNavigator Bài 24: Cập nhật sở liệu

Với tiêu chí trình bày động, dễ hiểu áp dụng thực tế, kèm theo chi tiết bước hướng dẫn thực hành cụ thể giúp cho người học dễ tiếp thu kiến thức cần thiết hình thành kỹ thực hành rèn luyện thao tác

Trong trình biên soạn, chắn giáo trình cịn nhiều thiếu sót Tác giả mong nhận ý kiến đóng góp q thầy/cơ em sinh viên để tiếp tục hoàn thiện

Xin chân thành cảm ơn quý đồng nghiệp, bạn bè có ý kiến đóng góp trình xây dựng giáo trình

Bà Rịa – Vũng Tàu, ngày …… tháng …… năm 2020 Tham gia biên soạn

(6)

MỤC LỤC

LỜI GIỚI THIỆU

BÀI 1: GIỚI THIỆU TỔNG QUAN 10

1.1 Giới thiệu ứng dụng thực tế 10

1.2 Khởi động, chương trình 11

1.3 Sử dụng hệ thống trợ giúp 15

Câu hỏi ôn tập tập 15

BÀI 2: CÁC THÀNH PHẦN CƠ BẢN 16

2.1 Hệ thống ký hiệu từ khóa 16

2.2 Các kiểu liệu 17

2.3 Biến, hằng, biểu thức 19

2.4 Các phép toán 21

Câu hỏi ôn tập tập 26

BÀI 3: SỬ DỤNG CÂU LỆNH NHẬP XUẤT CƠ BẢN, CẤU TRÚC ĐIỀU KHIỂN IF 28

3.1 Các câu lệnh nhập xuất 28

2 Câu lệnh if else 32

Câu hỏi ôn tập tập 36

BÀI 4: SỬ DỤNG CẤU TRÚC LỰA CHỌN SWITCH CASE, FOR, FOR EACH 38

2 Câu lệnh switch 38

2 Câu lệnh for 40

3 Câu lệnh for …each 49

Câu hỏi ôn tập tập 52

BÀI 5: SỬ DỤNG CẤU TRÚC LỰA VÒNG LẶP WHILE, DO…WHILE 54

3 Sử dụng cấu trúc vòng lặp While 54

2 Sử dụng cấu trúc vòng lặp Do …while 57

(7)

BÀI 6: SỬ DỤNG CÂU LỆNH BREAK, CONTINUE, GOTO 60

4 Sử dụng câu lệnh break 60

2 Sử dụng câu lệnh continue 61

3 Sử dụng câu lệnh goto 62

Câu hỏi ôn tập tập 64

BÀI 7: HÀM 65

5 Khái niệm 65

2 Quy tắc xây dựng hàm 65

3 Nguyên tắc hoạt động hàm 66

4 Cách truyền tham số 68

5 Sử dụng hàm 69

Câu hỏi ôn tập tập 72

BÀI 8: THIẾT KẾ LỚP ĐỐI TƯỢNG 73

7 Định nghĩa lớp đối tượng 73

2 Khai báo lớp đối tượng 74

Câu hỏi ôn tập tập 77

BÀI : ĐỊNH NGHĨA CÁC THUỘC TÍNH, PHƯƠNG THỨC HÀNH ĐỘNG CHO LỚP ĐỐI TƯỢNG 78

8 Định nghĩa thuộc tính cho lớp đối tượng 78

2 Định nghĩa phương thức hành động cho lớp đối tượng 80

Câu hỏi ôn tập tập 83

BÀI 10: SỬ DỤNG FORM, MENUSTRIP 85

9 Form 85

2 Menustrip 96

Câu hỏi ôn tập tập 99

BÀI 11: SỬ DỤNG LABEL, TEXTBOX, BUTTON 102

11 Label 102

(8)

3 Button 108

Câu hỏi ôn tập tập 110

BÀI 12: SỬ DỤNG CHECKBOX, RADIOBUTTON, GROUPBOX 113

13 Checkbox 113

2 RadioButton 115

3 GroupBox upload.123doc.net Câu hỏi ôn tập tập 121

BÀI 13: SỬ DỤNG COMBOBOX, LISTBOX 123

1 ComboBox 123

2 ListBox 125

Câu hỏi ôn tập tập 128

BÀI 14: SỬ DỤNG DATETIMEPICKER, MONTHCALENDAR 129

1 DateTimePicker 129

2 MonthCalendar 130

Câu hỏi ôn tập tập 132

BÀI 15: SỬ DỤNG LISTVIEW, TREEVIEW 133

1 ListView 133

2 TreeView 138

Câu hỏi ôn tập tập 142

BÀI 16: SỬ DỤNG PICTUREBOX, TOOLTIP 144

1 PictureBox 144

2 ToolTip 145

Câu hỏi ôn tập tập 148

BÀI 17: SỬ DỤNG CHECKLISTBOX, NUMERICUPDOWN 150

1 CheckListBox 150

2 NumericUpDown 152

Câu hỏi ôn tập tập 154

(9)

1 Panel 156

2 SplitContainer 157

3 TabControl 161

Câu hỏi ôn tập tập 166

BÀI 19: TẠO KẾT NỐI, ĐÓNG KẾT NỐI CƠ SỞ DỮ LIỆU 168

1 Các kiểu liệu kết nối 168

2 Tạo kết nối liệu 171

3 Đóng kết nối sở liệu 176

Câu hỏi ôn tập tập 177

BÀI 20: TRUY XUẤT CƠ SỞ DỮ LIỆU BẰNG DATASET 178

1 Định nghĩa Dataset 178

2 Thao tác truy xuất liệu với Dataset 179

Câu hỏi ôn tập tập 181

BÀI 21: HIỂN THỊ CƠ SỞ DỮ LIỆU BẰNG DATAGRIDVIEW 183

1 Ý nghĩa DataGridView 183

2 Các thiết lập thuộc tính 185

3 Truy xuất hiển thị liệu control DataGridView 186

Câu hỏi ôn tập tập 189

BÀI 22: TRUY XUẤT CƠ SỞ DỮ LIỆU BẰNG BINDINGSOURCE 191

1 Ý nghĩa BindingSource 191

2 Cách thiết lập thành phần 192

3 Truy xuất hiển thị liệu BindingSource 192

Câu hỏi ôn tập tập 193

BÀI 23: HIỂN THỊ CƠ SỞ DỮ LIỆU BẰNG BINDINGNAVIGATOR 194

1 Ý nghĩa BindingNavigator 194

2 Cách thiết lập thành phần 195

3 Truy xuất hiển thị liệu BindingNavigator 196

(10)

BÀI 24: THAO TÁC VỚI CƠ SỞ DỮ LIỆU 198

1 Các kiểu liệu, cập nhật sở liệu 198

2 Truy xuất cập nhật liệu 200

Câu hỏi ôn tập tập 202

(11)

GIÁO TRÌNH MƠ ĐUN Tên mơ đun: Lập trình Windows forms

Mã mơ đun: MĐ 20

Vị trí, tính chất, ý nghĩa vai trị mơ đun:

- Vị trí mơ đun: Mơ đun bố trí sau học sinh học xong mô đun Cơ sở liệu, Lập trình bản, Quản trị sở liệu SQL Server

- Tính chất mơ đun: Là mô đun chuyên môn nghề Đây mô đun chứa đựng kiến thức tảng ngôn ngữ lập trình ứng dụng xây dưng phần mềm ứng dụng quản lý

- Ý nghĩa vai trò môn học/mô đun: Môn học giúp thực hành giao diện lập trình ứng dụng nhỏ như: quản lý quán café, quản lý khách sạn, quản lý nhân viên, quản lý sinh viên…

Mục tiêu mô đun: - Về kiến thức:

+ Trình bày kiểu liệu C#

+ Trình bày câu lệnh, cấu trúc điều khiển, rẽ nhánh + Trình bày control xây dựng giao diện

- Về kỹ năng:

+ Xác định, phân tích chức yêu cầu để lên kế hoạch xây dựng chương trình ứng dụng

+ Thiết kế giao diện chương trình ứng dụng

+ Vận dụng kiến thức xây dựng chức ứng dụng + Kiểm tra xử lý có hệ thống lỗi cố ứng dụng

+ Đóng gói ứng dụng triển khai - Về lực tự chủ trách nhiệm:

+ Chủ động việc thực tế hóa ứng dụng phần mềm (Xây dựng ứng dụng làm toán, )

(12)

+ Gia công phần mềm theo yêu cầu khách hàng

(13)

BÀI 1: GIỚI THIỆU TỔNG QUAN

Mã bài: 19.01 Giới thiệu:

C# hay Csharp ngơn ngữ lập trình họ DotNet Microsoft lập trình C# người lập trình phải chuẩn bị cài đặt NET Framework

Mục tiêu:

- Trình bày nhu cầu xây dựng ứng dụng thực tế - Cài đặt, thao tác chương trình ViSual Studio - Thao tác hệ thống trợ giúp từ trình đơn Help - Rèn luyện tính cẩn thận, sáng tạo, làm việc nhóm Nội dung chính:

1.1 Giới thiệu ứng dụng thực tế .NET Framework ?

.NET Framework tảng phát triển hoàn hảo Microsoft, cung cấp cho lập

trình viên thư viện dùng chung hỗ trợ cho việc phát triển kiểu ứng dụng khác bao gồm:

- Ứng dụng ASP.NET - Ứng dụng Windows Form - Web Services

- Windows Services

- Ứng dụng mạng ứng dụng điều khiển truy cập từ xa Các ứng dụng thực tế:

(14)

1.2 Khởi động, chương trình

Để tải Visual Studio 2019, thực vào

link: https://visualstudio.microsoft.com/download

Hình 1.1 Màn hình Download phần mềm cài đặt Visual Studio

Ở có phiên Visual Studio 2019 Đó là: Community, Professional Enterprise Với Sinh Viên tải Community

File sau tải được lưu trữ sau:

(15)

Hình 1.3 Màn hình download tiến hành cài đặt

Tùy vào tốc độ máy đường truyền mạng, sau tải xong ta có đây:

Hình 1.4 Màn hình lựa chọn để cài đặt

Chọn Desktop Application (Winform, WPF) Tương tự cho Universal Windows Platform development , Mobile (Xamarin) nhấp chọn vào

(16)

Hình 1.5 Lựa chọn cấu hình cài đặt

Trong hình Đăng nhập để bấm Sign In Dùng tài khoản Gmail tài khoản Microsoft để đăng nhập quyền dùng Visual Studio

(17)

Hình 1.7 Đăng nhập username mật khẩu Cung cấp mật Sign in bình thường

Khởi động chương trình Visual Studio 2019

Hình 1.8 Màn hình khởi động chương trình Visual Studio Màn hình sau khởi động thành cơng

Hình 1.9 Lựa chọn chức làm việc Ở hình có lựa chọn chính:

(18)

- Continue without code: Chọn mục mở Visual Studio mà khơng có Project

- “Create a New Project”: Chương trình hiển thị hình tạo Project

Hình 1.10 Lựa chọn mơi trường ngơn ngữ làm việc

Tìm kiếm, lọc theo: Ngơn ngữ lập trình (C#, VB ), lọc theo Platform(Android, IOS, Windows…), theo Project Type(Cloud, Console, Machine Learning…)

Hình 1.11 Màn hình lựa chọn nơi lưu Project 1.3 Sử dụng hệ thống trợ giúp

Nhấp vào mục Help chọn View Help (Ctrl + F1) để tìm tài liệu khắc phúc lỗi trang web:

(19)

Câu hỏi ôn tập tập

1 Tiến hành cài đặt Visual Studio máy tính

(20)

BÀI 2: CÁC THÀNH PHẦN CƠ BẢN

Mã bài: 19.02 Giới thiệu:

Việc hiểu rõ thành phần cách thức sử dụng ngơn ngữ lập trình giúp làm việc dễ dàng thực hành, thao tác với ngôn ngữ Hệ thống từ khóa, kiểu liệu bản, cách xây dựng biểu thức, biến, xây dựng chương trình

Mục tiêu:

- Trình bày sử dụng hệ thống ký hiệu, từ khóa, kiểu liệu bản, biến, biểu thức

- Vận dụng loại biến, biểu thức vào tập mẫu - Vận dụng loại biến, biểu thức vào tập ứng dụng - Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm Nội dung chính:

2.1 Hệ thống ký hiệu từ khóa

C# ngơn ngữ có từ khóa: ngơn ngữ sử dụng giới hạn từ khóa, khoảng 80 từ khóa 10 kiểu liệu xây dựng sẵn bảng 1.1

Bảng 2.1: Bảng mô tả từ khóa C#

abstract default foreach object sizeof unsafe as delegate goto operator stackalloc ushort

base if out static using

bool double implicit override string virtual

break else in params struct volatile

byte enum int private switch void

case event interface protected this while catch explicit internal public throw decimal

char extern is readonly true for

checked false lock ref try null

class finally long return typeof short const fixed namespace sbyte uint unchecked

continue float new sealed ulong

2.2 Các kiểu liệu bản

(21)

Biến kiểu giá trị lưu trữ giá trị thực, giá trị lưu trữ stack, mang giá trị null phải chứa giá trị xác định

Bảng 2.2: Bảng mô tả kiểu liệu giá trị C# Kiểu

C#

Số Byte

Kiểu

.NET Mô tả

byte Byte Số nguyên dương không dấu: đến 255

char Char Ký tự Unicode

bool Boolean Giá trị logic true/ false

sbyte Sbyte Số nguyên có dấu: -128 đến 127

short Int16 Số nguyên có dấu: -32.768 đến 32.767 ushort Uint16 Số nguyên không dấu: đến 65.535

int Int32 Số nguyên có dấu: -2.147.483.647 đến 2.147.483.647

uint Uint32 Số nguyên không dấu: đến 4.294.967.295

float Single

Kiểu dấu chấm động, giá trị xấp xỉ từ 3,4E-38 đến 3,4E+38; với chữ số có nghĩa

double Double

Kiểu dấu chấm động, giá trị xấp xỉ từ 1,7E-308 đến 1,7E+308; với 15, 16 chữ số có nghĩa

decimal Decimal

Có độ xác đến 28 số giá trị thập phân, dùng tính tốn tài chính, kiểu địi hỏi phải có hậu tố “m” hay “M” theo sau giá trị

long Int64

Kiểu số nguyên có dấu có giá trị khoảng: -9.233.370.036.854.775.808 đến – 9.233.372.036.854.775.807

ulong Uint64 Số nguyên không dấu từ đến 0xffffffffffffff

Lưu ý:

(22)

Ví dụ 1.5: float a=0.15f;

Kiểu giá trị bool C# thiết phải true false Chuyển kiểu liệu:

Chuyển đổi kiểu liệu C# thực cách sau:

 Sử dụng lớp Convert:

Đây lớp C# xây dựng sẵn phục vụ cho việc chuyển đổi từ kiểu liệu sang kiểu liệu khác Các phương thức lớp Convert phần lớn phương thức tĩnh:

- ToInt32(<Tham số>) - ToInt64(<Tham số>) - ToString(<Tham số>) - ToDouble(<Tham số>) - ToBoolean(<Tham số>) - ToByte(<Tham số>) …

<Tham số>: chuỗi ký tự, số, biến số nguyên, số thực kiểu bool Nếu trình chuyển kiểu đặt tham số null hàm Convert trả giá trị mặc định

int a = Convert.ToInt32(“10”); //chuyển chuỗi 10 sang số nguyên

bool b = Convert.ToBoolean(27); //chuyển số 27 sang kiểu boolean

bool a = Convert.ToBoolean(“hello”); //Sai định dạng, không chuyển

int b = Convert.ToInt32(“123456787654”); //Tràn nhớ, không chuyển

double d = Convert.ToDouble(null); //Trả giá trị mặc định

Sử dụng phương thức Parse:

Phương thức Parse thường sử dụng để chuyển đổi chuỗi sang kiểu liệu cụ thể Mỗi kiểu liệu xây dựng sẵn C# hỗ trợ phương thức Parse để chuyển đổi chuỗi sang kiểu liệu tương ứng:

(23)

- Boolean.Parse(<chuoi>): Chuyển chuỗi kiểu Boolean - Single.Parse(<chuoi>): Chuyển chuỗi kiểu Single - …

Ví dụ

int a = Int32.Parse(“123”); //a mang giá trị 123

float b = Float.Parse(“20.7”); //b mang giá trị 20.7

bool c = Boolean.Parse(“true”); //c mang giá trị true

int a = Int32.Parse(“Hello”); //sai định dạng, không chuyển

byte b = Byte.Parse(“10000000000”); //quá giới hạn, không chuyển

bool c = Boolean.Parse(null); //tham số null, không chuyển

2.3 Biến, hằng, biểu thức 2.3.1 Biến

Biến nơi lưu trữ liệu chương trình Dữ liệu biến nằm nhớ vật lý Ram thay đổi Muốn sử dụng biến trước tiên lập trình phải định biến có kiểu liệu cụ thể

 Cú pháp khai báo biến:

<Kiểu liệu> <Tên biến>

Lưu ý: Tên biến phải đặt phù hợp với quy tắc đặt tên

 Cú pháp khởi tạo giá trị cho biến:

<Tên biến> = <giá trị> Trong đó:

= phép toán gán giá trị

Quy tắc đặt tên: Các tên biến, tên hằng, tên hàm, … C# đề phải đặt tên với quy tắc sau:

 Một tên biến bắt đầu chữ hoa hay chữ thường Tên chứa ký

tự

hay số ký tự gạch (_)

(24)

 Các từ khóa khơng thể sử dụng để đặt tên cho biến Nếu muốn dùng từ khóa

đặt tên ta thêm ký tự @ phía trước Ví dụ: Employee: student: _Name: Emp_Name: @goto: static: 4myclass: Student&Falculty: Hợp lệ Hợp lệ Hợp lệ Hợp lệ Hợp lệ

Khơng hợp lệ, trùng từ khóa

Không hợp lệ, bắt đầu ký tự số Không hợp lệ, không chứa ký tự đặc biệt 2.3.2 Hằng

Hằng biến giá trị không thay đổi Biến công cụ mạnh, nhiên làm việc với giá trị định nghĩa không thay đổi, ta phải đảm bảo giá trị khơng thay đổi suốt chương trình Ví dụ, lập chương trình thí nghiệm hóa học liên quan đến nhiệt độ sơi, hay nhiệt độ đơng nước, chương trình cần khai báo hai biến DoSoi DoDong, không cho phép giá trị hai biến bị thay đổi hay bị gán Để ngăn ngừa việc gán giá trị khác, ta phải sử dụng biến kiểu

Hằng phân thành ba loại: giá trị (literal), biểu tượng (symbolic constants), kiểu liệu kê (enumerations)

Giá trị hằng: ta có câu lệnh gán sau: x = 100;

Giá trị 100 giá trị Giá trị 100 100 Ta gán giá trị khác cho 100

Biểu tượng hằng: gán tên cho giá trị hằng, để tạo biểu tượng dùng từ khóa const cú pháp sau:

<const> <type> <tên hằng> = <giá trị>;

(25)

const int DoSoi = 100;

Trong khai báo trên, 100 số DoSoi biểu tượng có kiểu ngun

2.4 Các phép tốn

2.4.1 Toán tử (Operator) C#

Các phép toán khơng thể thiếu ngơn ngữ lập trình C#

Bảng 2.3: Bảng mô tả tốn tử C#

Tốn tử Tên Ví dụ Kết quả

+ Cộng x+y Tổng x y

- Trừ x-y Hiệu x y

* Tích x*y Tích x y

/ Chia x/y Phần nguyên thương x chia y

% Chia dư x%y Phần dư thương x chia y Ví dụ:

(26)

Một số toán tử gán sử dụng C#:

Bảng 2.4: Bảng mơ tả tốn tử phép gán C#

Tốn tử Ví dụ Kết quả

= x=y Gán giá trị y cho x

+= x+=y Gán giá trị x = x+y

-= x-=y Gán giá trị x = x-y

*= x*=y Gán giá trị x = x*y

/= x/=y Gán giá trị x = x/y

%= x%=y Gán giá trị x = x%y

<<= x<<=3 Gán giá trị x = x<<3 >>= x>>=3 Gán giá trị x = x>>3

&= x&=2 Gán giá trị x = x&2 (Phép AND bit) ^= x^=2 Gán giá trị x = x^2 (Phép OR loại trừbit) |= x|=2 Gán giá trị x = x|2 (Phép OR bit)

(27)

Kết chạy chương trình

2.4.3 Tốn tử tăng giảm tiền tố hậu tố:

Giả sử ta muốn tăng giá trị biến x gán cho biến y, ta làm sau: y = x++; y = ++x;

Vậy đâu điểm khác biệt cú pháp ? Giả sử cho giá trị biến x = ta phân tích

Khi lệnh y = x++; thực phép gán thực trước tiên sau đến phép tốn tăng Ta gọi tăng hậu tố, giá trị biến x = 10 y =

Còn lệnh y = ++x; phép toán tăng thực trước đến toán tử gán Ta gọi tăng tiền tố, giá trị x y 10

(28)

Đôi lúc muốn kết hợp nhiều điều kiện với ví dụ bắt buộc hai biểu thức điều kiện cần biểu thức thực lệnh Trong C# hỗ trợ tốn tử logic sau:

Bảng 2.5: Bảng mô tả toán tử logic C# Toán

tử

hiệu Cú pháp Miêu tả

AND && <BT1> &&

<BT2> Trả true OR || <BT1>||<BT2> Trả true biểu

thức

NOT ! !(BT) Trả phủ định biểu thức

trong ngoặc 2.4.5 Toán tử quan hệ

Các toán tử quan hệ thường dùng để so sánh hai giá trị, sau trả kết giá trị logic kiểu boolean (true false)

Giả sử ta có biến x = y = Các tốn tử C# trình bày đây:

Bảng 2.6: Bảng mơ tả tốn tử quan hệ C#

Toán tử Ký hiệu Biểu thức so

sánh Kết so sánh

So sánh == x==5 true

Không != x!=y true

Lớn > x>y true

Lớn hay >= x>=y true

Nhỏ < x<y false

Nhỏ hay <= x<=y false

Lưu ý: toán tử so sánh (==) ký hiệu hai dấu dính liền khơng có khoảng cách chúng Trình biên dịch C# xem toán tử

(29)

Những câu lệnh mà thực việc đánh giá giá trị gọi biểu thức Một phép gán giá trị cho biến biểu thức:

var1 = 24;

Trong câu lệnh phép đánh giá hay định lượng phép gán có giá trị 24 cho biến var1 Lưu ý tốn tử gán (‘=’) khơng phải toán tử so sánh Do sử dụng toán tử biến bên trái nhận giá trị phần bên phải Các tốn tử ngơn ngữ C# phép so sánh hay phép gán trình bày chi tiết mục tốn tử chương

Do var1 = 24 biểu thức định giá trị 24 nên biểu thức xem phần bên phải biểu thức gán khác:

var2 = var1 = 24;

Lệnh thực từ bên phải sang biến var1 nhận giá trị 24 tiếp sau var2 nhận giá trị 24 Do hai biến nhận giá trị 24 Có thể dùng lệnh để khởi tạo nhiều biến có giá trị như:

a = b = c = d = 24;

* Khoảng trắng (whitespace)

Trong ngôn ngữ C#, khoảng trắng, khoảng tab dòng xem khoảng trắng (whitespace), giống tên gọi xuất khoảng trắng để đại diện cho ký tự C# bỏ qua tất khoảng trắng đó, viết sau:

var1=24; Hay var1 = 24; trình biên dịch C# xem hai câu lệnh hoàn toàn giống

Tuy nhiên lưu ý khoảng trắng chuỗi không bỏ qua Nếu viết:

System.WriteLine(“Xin chao!”);

mỗi khoảng trắng hai chữ “Xin” “chao” đối xử bình thường ký tự khác chuỗi

(30)

hơn Cũng ta viết văn MS Word khơng trình bày tốt khó đọc gây cảm tình cho người xem Cịn trình biên dịch việc dùng hay khơng dùng khoảng trắng không khác

Tuy nhiên, cần lưu ý sử dụng khoảng trắng sau:

int x = 24; t ương tự như: int x=24; khơng giống như: intx=24;

Trình biên dịch nhận biết khoảng trắng hai bên phép gán phụ bỏ qua, khoảng trắng khai báo kiểu tên biến khơng phải phụ hay thêm mà bắt buộc phải có tối thiểu khoảng trắng Điều khơng có bất hợp lý, khoảng trắng cho phép trình biên dịch nhận biết từ khố int khơng thể nhận intx.Tương tự C/C++, C# câu lệnh kết thúc với dấu chấm phẩy ‘;’ Do câu lệnh nhiều dịng, dịng nhiều câu lệnh thiết hai câu lệnh phải cách dấu chấm phẩy

2.4.6 Câu lệnh (statement)

Trong C# dẫn lập trình đầy đủ gọi câu lệnh Chương trình bao gồm nhiều câu lệnh với Mỗi câu lệnh phải kết thúc với dấu chấm phẩy, ví dụ như:

int x; // câu lệnh x = 32; // câu lệnh khác

int y =x; // câu lệnh

Những câu lệnh xử lý theo thứ tự Đầu tiên trình biên dịch bắt đầu vị trí đầu danh sách câu lệnh câu lệnh lệnh cuối cùng, nhiên cho trường hợp câu lệnh không phân nhánh

(31)

Ngồi cịn có câu lệnh làm cho số đoạn chương trình thực nhiều lần, câu lệnh gọi câu lệnh lặp hay vòng lặp Bao gồm lệnh lặp for, while, do, in, each đề cập tới mục

Câu hỏi ôn tập tập

1 Tạo project dạng Console thực khai báo loại biến sau: Biến chieudai, chieurong, chuvi, dientich kiểu liệu int

Biến so1, so2, so3, min, max kiểu số thực (float)

2 Tạo project dạng Console thực khai báo loại sau: Hằng số thực p = 3.14

(32)

BÀI 3: SỬ DỤNG CÂU LỆNH NHẬP XUẤT CƠ BẢN, CẤU TRÚC ĐIỀU KHIỂN IF

Mã bài: 19.03 Giới thiệu:

Trong này, nội dung học giúp phân tích để hiểu cú pháp chương trình C# Nội dung học hướng dẫn sử dụng lệnh xuất hình Console.WriteLine(); lệnh nhập liệu vào từ bàn phím lệnh Console.Read() Đồng thời tìm hiểu cấu trúc lệnh có điều kiện if…else

Mục tiêu:

- Trình bày biết sử dụng câu lệnh nhập xuất - Trình bày biết sử dụng cấu trúc lệnh rẽ nhánh if else

- Vận dụng câu lệnh nhập xuất để viết chương trình Console - Vận dụng cấu trúc rẽ nhánh if else để viết chương trình Console - Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm

Nội dung chính:

3.1 Các câu lệnh nhập xuất bản 3.1.1 Console.Write();

Cú pháp:

Console.Write(<giá trị cần in hình>);

Ý nghĩa: In giá trị hình console Giá trị ký tự, chuỗi, giá trị chuyển kiểu chuỗi

Ta dùng lệnh cho chương trình phải dừng lại đợi nhấn phím kết thúc trước nhấn phím quan sát kết hình console Các lệnh sử dụng Console.Read(); Console.ReadLine(); Console.ReadKey(); 3.1.2 Console.WriteLine(); Cú pháp:

(33)

Ý nghĩa:

Lệnh tượng tự Console.Write()

Nhưng khác in giá trị hình xong tự động đưa trỏ xuống dòng Điều giúp ta giải vấn đề đặt phần

Ngồi ra, để xuống dịng ta cịn có nhiều cách khác như:

Sử dụng ký tự đặc biệt: sử dụng ký tự “\n” chuỗi in hình trình biên dịch tự động đổi thành ký tự xuống dịng

Như thay dùng Console.WriteLine(“K team”) ta dùng Console.Write (“K team \n”)

3.1.3 Console.Read(); Cú pháp:

Console.Read();

Ý nghĩa:

Đọc ký tự từ bàn phím trả kiểu số nguyên mã ASCII (American Standard Code for Information Interchange – Chuẩn mã trao đổi thơng tin Hoa Kì, kí tự mã kí tự dựa bảng chữ La Tinh dùng tiếng Anh đại ngôn ngữ Tây Âu khác) ký tự

Chú ý: lệnh khơng đọc phím chức năng Ctrl, Shift, Alt, Caps Lock, Tab,

3.1.4 Console.ReadLine(); Cú pháp:

Console.ReadLine();

Ý nghĩa: Đọc liệu từ bàn phím gặp ký tự xuống dịng dừng (Nói cách khác đọc nhấn enter dừng) giá trị đọc ln chuỗi

3.1.5 Console.ReadKey(); Cú pháp:

Console.ReadKey(<tham số kiểu bool>)

(34)

 Lệnh dùng để đọc ký tự từ bàn phím trả kiểu ConsoleKeyInfo (là kiểu liệu có cấu trúc định nghĩa sẵn để chứa ký tự bàn phím bao gồm phím chức năng)  Tham số kiểu bool bao gồm giá trị: true false Nếu truyền

vào true phím ấn khơng hiển thị lên hình console mà đọc ngầm ngược lại phím ấn hiển thị lên hình console Nếu khơng truyền tham số vào mặc định false

Ví dụ:

Viết chương trình nhập vào thơng tin sinh viên bao gồm: Họ tên, giới tính, ngày sinh, địa chỉ, tuổi

Để

Bước 1: Mở Visual Studio  Chọn File  Chọn Project…

Hình 3.1: Màn hình tạo Project

Chọn Visual C#  chọn Console App (.NET Framework)  Nhập Name, chọn

Location  Chọn OK

(35)

Sau tạo xong Project cấu trúc thư mục lưu vào Solution

Hình 3.3: Màn hình quản lý Solution Một Solution gồm nhiều Project có cấu trúc sau:

Hình 3.4: Màn hình quản lý Project

Nhấp chuột phải vào Solution

Chọn Add Thêm project

Danh sách dự án project

(36)

Hình 3.5: Màn hình gán cho Project chạy đầu tiên Project sau tạo

Hình 3.6: Màn hình ban đầu cửa sổ làm việc Program.cs Bước 2: Viết xử lý cho Program.cs

(37)

Hình 3.7: Code để nhập xuất thơng tin sinh viên Bước 3: Chạy chương trình

Trước chạy chương trình cần biên dịch kiểm tra lỗi Solution vừa tạo Khi kiểm tra cịn lỗi chương trình chạy với lần biên dịch trước

Hình 3.8: Kiểm tra lỗi Solution Kiểm tra lỗi trước chạy

(38)

Hình 3.9: Màn hình thơng báo lỗi chương trình

Chọn Start nhấp vào biểu tượng để chạy chương trình Phím tắt (F5)

Hình 3.10: Chọn biểu tượng để thực thi (chạy) chương trình Giao diện chương trình chạy sau nhập thơng tin sinh viên

Hình 3.11: Màn hình hiển thị kết chương trình Màn hình thơng báo lỗi

(39)

3.2 Câu lệnh if else

Câu lệnh phân nhánh if else dựa điều kiện Điều kiện biểu thức kiểm tra giá trị bắt đầu gặp câu lệnh Nếu điều kiện kiểm tra đúng, câu lệnh hay khối câu lệnh bên thân câu lệnh if thực

Trong câu điều kiện if else else phần tùy chọn Các câu lệnh bên thân else thực điều kiện if sai Do câu lệnh đầy đủ if else dùng có hai if else thực Ta có cú pháp câu điều kiện if else sau:

if (biểu thức điều kiện)

<Khối lệnh thực điều kiện đúng> [else

<Khối lệnh thực điều kiện sai>]

Nếu câu lệnh thân if hay else mà lớn lệnh lệnh phải bao khối lệnh, tức phải nằm dấu khối { }:

if (biểu thức điều kiện) {

<Lệnh 1> <Lệnh 2> } [else

{

<lệnh 1> <lệnh 2> }]

(40)

Kết chương trình:

Hình 3.12 Màn hình kết câu lệnh if…else

Trong ví dụ trên, câu lệnh if kiểm tra xem giá trị var1 có lớn giá trị var2 không Biểu thức điều kiện sử dụng toán tử quan hệ lớn (>), toán tử khác nhỏ (<), hay (==) Các toán tử thường xuyên sử dụng lập trình kết trả giá trị hay sai

Việc kiểm tra xác định giá trị var1 lớn var2 sai (vì var1 = 10 var2 = 20), lệnh else thực hiện, lệnh in hình:

(41)

Kết chương trình:

Hình 3.13 Màn hình kết nhiều câu lệnh if…else

Trong ví dụ trên, câu lệnh if kiểm tra xem giá trị var1 có lớn giá trị var2 khơng Biểu thức điều kiện sử dụng toán tử quan hệ lớn (>), toán tử khác nhỏ (<), hay (==) Các toán tử thường xuyên sử dụng lập trình kết trả giá trị hay sai

Việc kiểm tra xác định giá trị var1 lớn var2 sai (vì var1 = 10 var2 = 20), lệnh else thực hiện, lệnh in hình:

(42)

Tiếp theo đến câu lệnh if thứ hai, sau thực lệnh gán giá trị var1 = 30, lúc điều kiện if nên câu lệnh khối if thực kết in ba dòng sau:

Gan gia tri var1 cho var2 Tang bien var1 len mot Var1 = 31, var2 = 30 * Câu lệnh if lồng nhau

Các lệnh điều kiện if lồng để phục vụ cho việc xử lý câu điều kiện phức tạp Việc thường xuyên gặp lập trình Giả sử cần viết chương trình có u cầu xác định tình trạng kết hôn công dân dựa vào thông tin tuổi, giới tính, tình trạng nhân, dựa số thơng tin sau:

• Nếu cơng dân nam độ tuổi kết 20 với điều kiện chưa có gia đình

• Nếu cơng dân nữ độ tuổi kết 19 với điều kiện chưa có gia đình

(43)

Dựa yêu cầu ta dùng lệnh if lồng để thực Ví dụ sau minh họa cho việc thực yêu cầu

Kết chương trình:

Hình 3.14 Màn hình kết if…else lồng Câu hỏi ơn tập tập

1 Viết chương trình cho phép người dùng nhập tên hiển thị câu: Mơn học Lập trình Windows Form chào bạn + <Tên vừa nhập>

2 Viết chương trình nhập vào thông tin:  Tên

(44)(45)

BÀI 4: SỬ DỤNG CẤU TRÚC LỰA CHỌN SWITCH CASE, FOR, FOR EACH

Mã bài: 19.04 Giới thiệu:

Cũng giống ngôn ngữ khác câu lệnh lặp câu lệnh rẽ nhánh giúp xử lý nhu cầu thực tế lập trình việc chọn lựa nhiều giá trị tùy theo điều kiện khác Đồng thời, tiến hành lặp lại cơng việc cụ thể giới hạn lặp định

Mục tiêu:

- Trình bày thực hành sử dụng cấu trúc lệnh switch…case - Trình bày thực hành sử dụng cấu trúc lệnh for, for each

- Vận dụng cấu trúc lệnh switch…case để viết chương trình Console - Vận dụng cấu trúc for, for each để viết chương trình Console - Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm

Nội dung chính: 4.1 Câu lệnh switch

Khi có nhiều điều kiện để chọn thực dùng câu lệnh if rối rắm dài dòng, Các ngơn ngữ lập trình cấp cao cung cấp dạng câu lệnh switch liệt kê giá trị thực giá trị thích hợp C# cung cấp câu lệnh nhảy switch có cú pháp sau:

switch (<biểu thức>) {

case <giá trị thứ 1>: <câu lệnh thứ 1>; break;

case <giá trị thứ 2>: <câu lệnh thứ 2>; break;

case <giá trị thứ n>: <câu lệnh thứ n>; break;

default: <câu lệnh mặc định>; break;

}

(46)

 switch, case, default từ khóa bắt buộc

 <biểu thức> phải biểu thức trả kết kiểu:

o Số nguyên (int, long, byte, ) o Ký tự chuỗi (char, string)

Kiểu liệt kê

 <giá trị thứ i> với i = n giá trị muốn so sánh với giá trị <biểu thức>

 <câu lệnh thứ i> với i = n câu lệnh muốn thực <giá trị thứ i> tương ứng với giá trị <biểu thức>

 <câu lệnh mặc định> câu lệnh thực giá trị <biểu thức> không với <giá trị thứ i>

Ý nghĩa: Duyệt từ xuống kiểm tra xem giá trị <biểu thức> có với <giá trị thứ i> xét hay khơng Nếu thực <câu lệnh thứ i> tương ứng Nếu không tất <giá trị thứ i> thực <câu lệnh mặc định>

Cũng tương tự câu lệnh if, biểu thức để so sánh đặt sau từ khóa switch, nhiên giá trị so sánh lại đặt sau từ khóa case Giá trị sau từ khóa case giá trị số nguyên đề cập phần trước

Nếu câu lệnh case thích hợp tức giá trị sau case với giá trị biểu thức sau switch câu lệnh liên quan đến câu lệnh case thực thi Tuy nhiên phải có câu lệnh nhảy break, goto để điều khiển nhảy qua case khác.Vì khơng có lệnh nhảy chương trình thực tất case theo sau Để dễ hiểu ta xem xét ví dụ

Ví dụ: Nhập vào số tự nhiên từ  Cài đặt màu mặc định cho số thứ

(47)

Kết thực chương trình

Hình 4.1 Kết chương trình lệnh switch…case 4.2 Câu lệnh for

Cú pháp:

for ([Khởi tạo]; [Điều kiện lặp]; [Bước lặp lại])

{

// Khối lệnh lặp lại Có thể bỏ trống }

Trong đó:

 Các phần [Khởi tạo]; [Điều kiện lặp]; [Bước lặp lại] hồn tồn để trống ví dụ sau

 Mỗi đoạn [Khởi tạo]; hay [Điều kiện lặp]; hay [Bước lặp lại] câu lệnh riêng

Tiến trình:

(48)

 Tiếp theo kiểm tra điều kiện lặp Rồi thực khối code bên vòng lặp for Khi đến ký hiệu } quay lên bước lặp lại

 Sau lại kiểm tra điều kiện lặp tiếp tục thực đoạn code khối lệnh Đến điều kiện lặp khơng cịn thõa mãn kết thúc vịng lặp for

 Trường hợp khác:  for (; ;) // lưu ý dấu ;  {

 // Khối lệnh lặp lại Có thể bỏ trống  }

Trong đó:

o Vòng lặp for trở thành vòng lặp vơ tận o Lưu ý dấu ; phải có

Ý nghĩa cách sử dụng phần [Khởi tạo]; [Điều kiện lặp]; [Bước lặp lại]

Khởi tạo

Khi bắt đầu vào đoạn code vòng lặp for, đoạn lệnh chạy Và gọi lần vòng đời vịng lặp for

(49)

Hình 4.2 Màn hình để tạo Class Lập trình đoạn code Class1

Cách gọi lớp Class1 Program.cs

Ở trường hợp i gọi biến đếm (thuật ngữ lập trình dùng cho biến có tác dụng tăng giá trị lên lần lặp lại)

(50)

Hình 4.3 Kết vịng lặp for khuyết

Ví dụ: Chỉ có câu lệnh khởi tạo vòng lặp (lưu ý dấu , dấu ; hai ví dụ sau)

for static void Main(string[] args) {

int i;

// lỗỗi chỉỉ phép có nhấất dịng lệnh khởỉi tạo vòng lặp for

for (i = 0, int j = 0; ; ) { Console.WriteLine(i); } Console.ReadKey(); } Hay:

static void Main(string[] args) {

int i;

// lỗỗi chỉỉ phép có nhấất dịng lệnh khởỉi tạo vòng lặp for

for (i = 0; int j = 0; ; ) {

Console.WriteLine(i); }

Console.ReadKey(); }

Điều kiện lặp

Điều kiện lặp biểu thức logic với kết trả bắt buộc true false (có thể bỏ trống trả kết true)

Điều kiện lặp dòng lệnh thứ vòng for chạy vào chạy lần (Khởi tạo chạy trước) Từ lần lặp thứ vòng for, Điều kiện lặp dòng lệnh thứ chạy (sau bước lặp lại) (Cứ nhớ đứng thứ 2)

Khi câu điều kiện lặp không cịn thỏa mãn (kết false) vịng lặp for kết thúc

Static void Main(string[] args) {

int i;

// vịng lặp for vấỗn lặp vỗ tận khỗng thoỉa mãn điềều kiện dừng

// i luỗn ==

// Điềều kiện lặp luỗn true for (i = 0; i < 10;)

{

Console.WriteLine(i); }

(51)

}

Ta thấy Điều kiện lặp vịng lặp ln true, nên vịng lặp lặp vơ tận

Hình 4.4 Kết vịng lập for vô tận

Để giải vấn đề cho vòng lặp kết thúc thỏa mãn điều kiện lặp Chúng ta thêm đoạn code i++; đoạn code Console.WriteLine(i); static void Main(string[] args)

{

int i;

for (i = 0; i < 10;) {

Console.WriteLine(i); i++;

}

Console.ReadKey(); }

Kết hình xuất giá trị số nguyên từ đến (10 lần) Chứng tỏ vòng lặp kết thúc sau 10 lần lặp (khơng cịn lặp vô tận)

Lưu ý:

(52)

Xem bảng thử để hiểu rõ số lần lặp:

Bảng 4.1 Mô tả số lần lặp vòng lặp for

Lần i i < 10

1 TRUE

2 TRUE

3 TRUE

4 TRUE

5 TRUE

6 TRUE

7 TRUE

8 TRUE

9 TRUE

10 TRUE

11 10 FALSE

Hồn tồn để giá trị true false vào phần điều kiện lặp (bỏ trống mặc định true) Hoặc biểu thức logic phức tạp kết cuối trả true false

Static void Main(string[] args) {

int i;

for (i = 0; (i % == 0) && (i < 10);) { Console.WriteLine(i); i++; } Console.ReadKey(); } Hay

static void Main(string[] args) {

int i;

(53)

Hay

static void Main(string[] args) {

int i;

for (i = 0; true;) { Console.WriteLine(i); i++; } Console.ReadKey(); }

Bước lặp lại

Như ví dụ ta thấy Mỗi lần muốn tăng giá trị i ta phải dùng môt đoạn lệnh i++ ; cuối khối lệnh Vậy trường hợp lặp lại ta cần thực thi đoạn lệnh i++ ; sao? Để tiện cho việc code Chúng ta có phần để tìm hiểu Đó bước lặp lại

Xét đoạn code sau:

static void Main(string[] args) {

int i; for (i = 0; i < 10;) { Console.WriteLine(i); i++; } Console.ReadKey(); }

(54)

Hình 4.5 Màn hình kết tăng biến i ngồi vịng lặp for

Ta viết gọn lại cách đưa i++; vào phần bước lặp lại khối for Static void Main(string[] args)

{

int i;

for (i = 0; i < 10; i++) {

Console.WriteLine(i); }

Console.ReadKey(); }

Kết tương tự bình thường

Hình 4.6 Màn hình kết tăng biến i vịng lặp for

Ví dụ Một vòng lặp for tổng hợp

static void Main(string[] args) {

int n = 100; int j = 0;

for (int i = 0; i * j < n; i++, j += 3,Console.WriteLine(“Kềất quaỉ For Loop {0}”, i))

{

Console.WriteLine(“=======================================”);

Console.WriteLine(“i: {0} | j: {1} | i * j: {2}”, i, j, i * j);

}

Console.ReadKey(); }

(55)

Hình 4.7 Màn hình kết vịng lặp for tổng hợp Cũng vẽ hình chữ nhật rỗng NxM với vịng lặp for: static void Main(string[] args)

{

int N = 10; int M = 20;

char drawChar = ‘*’; char insideChar = ‘ ‘;

// Vẽ từ trền xuỗấng

for (int i = 0; i < N; i++) { // Vẽ từ trái sang

for (int j = 0; j < M; j++) {

/*

* Nềấu ởỉ tọa độ cạnh trền i % (N – 1) ==

* ởỉ cạnh trái phaỉi (j % (M – 1) == 0) * mà khỗng nằm ởỉ cạnh trền (i % (N – 1) != 0)

* ((i % (N – 1) != 0) && (j % (M – 1) == 0)) * vẽ ký tự cuỉa hình chữ nhật

* ngược lại vẽ ký tự khỗng thuộc hình chữ nhật */

if (i % (N – 1) == || ((i % (N – 1) != 0) && (j % (M – 1) == 0)))

{

Console.Write(drawChar); // lúc ký tự * }

(56)

Console.Write(insideChar); // lúc ký tự rỗỗng ‘ ‘

} }

//mỗỗi lấền vẽ xong hàng xuỗấng dịng Console.WriteLine();

}

Console.ReadKey(); }

Kết chương trình

Hình 4.8 Màn hình kết vịng lặp để vẽ hình vng 4.3 Câu lệnh for …each

Cấu trúc lặp foreach cho phép duyệt mảng tập hợp Một số đặc trưng foreach:

 foreach không duyệt mảng tập hợp thông qua số phần tử cấu trúc lặp for

 foreach duyệt phần tử mảng tập hợp

 foreach dùng để duyệt mảng tập hợp ngồi khơng thể làm khác

Cú pháp

foreach (<kiểu liệu> <tên biến tạm> in <tên mảng tập hợp>)

{

// Code xử lý }

Trong đó:

 Các từ khoá foreach, in từ khoá bắt buộc

 <kiểu liệu> kiểu liệu phần tử mảng tập hợp  <tên biến tạm> tên biến tạm đại diện cho phần tử xét duyệt

(57)

 <tên mảng tập hợp> tên mảng tập hợp cần duyệt Nguyên tắc hoạt động

Foreach có nguyên tắc hoạt động tương tự cấu trúc lặp khác cụ thể sau:

 Ở vòng lặp gán giá trị phần tử mảng vào biến tạm

 Thực khối lệnh bên vòng lặp foreach

 Qua vòng lặp thực kiểm tra xem duyệt hết mảng tập hợp chưa Nếu chưa tiếp gán giá trị phần tử vào biến tạm tiếp tục thực khối lệnh bên

 Nếu duyệt qua hết phần tử vịng lặp kết thúc Qua nguyên tắc hoạt động ta thấy:

 Biến tạm vòng lặp foreach tương đương với phần tử i cách duyệt vòng lặp for

 Qua bước lặp ta thao tác với giá trị phần tử xét mà tương tác với phần tử đứng trước hay đứng sau  Bằng cách duyệt foreach ta thay đổi giá trị phần tử

vì lúc giá trị chép biến tạm ta thao tác với biến tạm

 Thậm chí việc thay đổi giá trị biến tạm không phép Nếu ta cố làm điều gặp lỗi sau:

(58)

Kết chương trình

Hình 4.9 Màn hình kết vịng lặp foreach tính tổng phần tử mảng Ví dụ: Sử dụng vịng lặp foreach để in mảng liệu

Kết chạy đoạn chương trình trên:

Hình 4.10 Màn hình kết dùng vịng lặp foreach in giá trị mảng Ta thấy cách duyệt foreach ngắn gọn nhiều so với cách duyệt vòng lặp for thông thường

So sánh for foreach C#

foreach mang số ưu điểm như:  Câu lệnh ngắn gọn, sử dụng

(59)

 Duyệt danh sách, tập hợp có số phần tử khơng xác định số phần tử thay đổi liên tục

Mặc dù có nhiều ưu điểm không foreach hẵn for Cùng điểm qua vài tiêu chí vịng lặp

Bảng 4.2 So sánh tiêu chí vịng lặp for foreach

Tiêu chí for foreach

Khả truy xuất phần tử

Truy xuất ngẫu nhiên (có thể gọi phần tử mảng để sử dụng)

Truy xuất (chỉ sử dụng giá trị phần tử xét)

Thay đổi giá trị phần tử

Có Khơng

Duyệt mảng, tập hợp khơng biết số phần tử mảng, tập hợp

Khơng Có

Hiệu suất (tốc độ xử lý) (*)

Đối với mảng, danh sách tập hợp có khả truy xuất ngẫu nhiên for chiếm ưu

Đối với mảng, danh sách tập hợp khơng có khả truy xuất ngẫu nhiên foreach chiếm ưu Câu hỏi ôn tập tập

1 Áp dụng câu lệnh switch …case để viết chương trình Console theo yêu cầu sau: khai báo biến kiểu int luachon

Nếu luachon = 1: Tính hình tam giác Nếu luachon = 2: Tính hình chữ nhật Nếu luachon = 3: Tính hình vng

2 Áp dụng lệnh for lệnh foreach để thực cơng việc sau:

- Tính tổng số từ  n với n số nguyên nhập vào từ bàn

(60)

- Tính tổng số chẵn số lẽ từ  n với n số nguyên nhập

vào từ bàn phím

(61)

BÀI 5: SỬ DỤNG CẤU TRÚC LỰA VÒNG LẶP WHILE, DO… WHILE

Mã bài: 19.05 Giới thiệu:

Trong C# vòng lặp while C# thực lặp lặp lại

lệnh mục tiêu đến điều kiện cho đúng, vòng lặp while sử dụng để lặp lặp lại đoạn code Nếu số lần lặp khơng cố định phải thực vịng lặp lần, nên sử dụng vòng lặp while

Mục tiêu:

- Trình bày thực hành sử dụng cấu trúc lệnh while - Trình bày thực hành sử dụng cấu trúc lệnh do…while

- Vận dụng cấu trúc lệnh while để viết chương trình Console bản, đồ án - Vận dụng cấu trúc do…while để viết chương trình Console bản, đồ án

- Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm Nội dung chính:

5.1 Sử dụng cấu trúc vòng lặp While

while (<Điều kiện lặp>) {

// khối lệnh lặp lại }

Điều kiện lặp biểu thức logic bắt buộc phải có với kết trả bắt buộc true false

Từ khóa while biểu thị vòng lặp while Các câu lệnh khối lệnh lặp lại đến khơng cịn thỏa mãn điều kiện lặp kết thúc vòng lặp while

Tiến trình:

(62)

thực khối code Khi gặp ký tự } quay lên kiểm tra điều kiện lặp tiếp tục thực khối code Quá trình kết thúc điều kiện lặp false

Điều kiện lặp true vịng lặp while trở thành vịng lặp vơ tận

Điều kiện lặp ln false vịng lặp khơng thực thi Ví dụ 1: In dãy số từ 10  19

Kết chương trình:

Hình 5.1 Kết thực vịng lặp while in dãy số từ 10 19

(63)

Dùng vòng lặp while để thực vẽ hình chữ nhật có chiều dài 50 dấu “*” chiều rộng 20 dấu “*” liên tiếp

Kết chương trình

(64)

5.2 Sử dụng cấu trúc vòng lặp …while Cú pháp

do {

// khối lệnh lặp lai } while (<Điều kiện lặp>);

Điều kiện lặp biểu thức logic bắt buộc phải có với kết trả bắt buộc true false

Từ khóa while biểu thị vòng lặp while Các câu lệnh khối lệnh lặp lại đến khơng cịn thỏa mãn điều kiện lặp kết thúc vòng lặp while

Tiến trình:

Đầu tiên trình biên dịch vào dòng thực khối lệnh bên Sau gặp ký tự } kiểm tra điều kiện lặp có thỏa mãn hay khơng Nếu kết true quay lại ký tự { thực khối code Quá trình kết thúc điều kiện lặp false

Điều kiện lặp ln true vịng lặp do…while trở thành vịng lặp vơ tận

Điều kiện lặp ln false vịng lặp khơng thực thi

Lưu ý: vòng lặp … while thực câu lệnh khối code xong kiểm tra điều kiện lặp Cuối vòng lặp while có dấu ; cuối

Ví dụ 1:

Dùng vòng lặp do…while để in dãy số từ 10  19

(65)

Kết thực chương trình:

Hình 5.2 Kết thực vòng lặp do…while in dãy số từ 10 19

(66)

Kết thực chương trình:

Hình 5.4 Kết thực vịng lặp do…while in ma trận Câu hỏi ôn tập tập

Áp dụng lệnh while, … while để thực cơng việc sau:

- Tính tổng số từ  n với n số nguyên nhập vào từ bàn

phím

- Tính tổng số chẵn số lẽ từ  n với n số nguyên nhập

vào từ bàn phím

(67)

BÀI 6: SỬ DỤNG CÂU LỆNH BREAK, CONTINUE, GOTO

Mã bài: 19.06 Giới thiệu:

Các câu lệnh làm ngắt, tiếp tục vị trí bất kỳ, nhảy đến vị trí Các câu lệnh làm gãy bố cục chương trình giúp cho chương trình thực yêu cầu vài trường hợp cụ thể

Mục tiêu:

- Trình bày thực hành sử dụng câu lệnh continue, goto, break - Vận dụng câu lệnh break, continue, goto để viết chương trình Console bản, đồ án

- Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm Nội dung chính:

6.1 Sử dụng câu lệnh break

Lệnh break C# có hai cách sử dụng:

Khi lệnh break sử dụng vòng lặp, vòng lặp kết thúc điều khiển chương trình bắt đầu lệnh sau vịng lặp

Nó sử dụng lệnh switch (sẽ nhắc đến chương tới) Nếu sử dụng vịng lặp lồng (ví dụ, vòng lặp bên vòng lặp khác), lệnh break dừng thực thi lệnh vòng lặp bắt đầu thực thi lệnh đoạn code sau khối code

Cú pháp lệnh break C# sau:

(68)

Ví dụ:

Kết chương trình:

Hình 6.1 Kết lệnh break 6.2 Sử dụng câu lệnh continue

Lệnh continue C# làm việc giống với lệnh break Thay bắt buộc kết thúc, bắt buộc vịng lặp diễn ra, bỏ qua đoạn code

Với vòng lặp for, lệnh continue làm cho bước kiểm tra điều kiện phần increment vòng lặp thực thi Với while do…while, lệnh continue làm điều khiển chương trình chuyển tới kiểm tra điều kiện

Cú pháp lệnh continue C# sau:

(69)

Ví dụ:

Kết chương trình:

Hình 6.2 Kết thực lệnh continue 6.3 Sử dụng câu lệnh goto

Lệnh nhảy goto lệnh nhảy đơn giản, cho phép chương trình nhảy vơ điều kiện tới vị trí chương trình thơng qua tên nhãn Tuy nhiên việc sử dụng lệnh goto thường làm tính cấu trúc thuật tốn, việc lạm dụng dẫn đến chương trình nguồn mà giới lập trình gọi “mì ăn liền” rối mớ bịng bong Hầu hết người lập trình có kinh nghiệm tránh dùng lệnh goto Sau cách sử dụng lệnh nhảy goto:

Cú pháp:

goto <label>;

(70)

 goto từ khóa thơng báo cho trình biên dịch biết đến nhãn sau để tiếp tục thực thi code

Ví dụ

Kết chương trình

(71)

Kết chương trình

Hình 6.4 Kết thực vịng lặp vơ tận Câu hỏi ôn tập tập

1 Sử dụng câu lệnh break cho tập 5.1

2 Viết chương trình đặt nhãn thực in câu lệnh “Chúc bạn học tốt môn học”

(72)

BÀI 7: HÀM

Mã bài: 19.07 Giới thiệu:

Hàm chương trình sử dụng thường xun tồn q trình lập trình Việc viết sử dụng hàm cách hiệu giúp cho q trình thực cơng việc lập trình nhanh chóng, tái sử dụng, kế thừa tốt Mục tiêu:

- Trình bày khái niệm cơng dụng hàm xây dựng chương trình

- Quy tắc xây dựng hàm, sử dụng hàm xây dựng chương trình - Trình bày sử dụng tham số, tham trị hàm

- Vận dụng hàm, thủ tục để xây dụng chương trình đồ án khoa học hiệu

- Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm Nội dung chính:

7.1 Khái niệm

Khi muốn thực thi đoạn code nhiều lần, thay phải copy copy lại đoạn code nhiều lần, dẫn đến chương trình bị trùng lặp code nhiều, C# có function cho phép thực thi đoạn code nhiều lần mà không cần phải copy lại code, mà cần gọi tên hàm

Việc viết sử dụng hàm cách hiệu hỗ trợ nhiều trình thực hành

7.2 Quy tắc xây dựng hàm Cú pháp:

<Quyền truy cập> <Kiểu trả về> Tên hàm (<Tham số>) {

// Thân hàm

(73)

Trong đó: Tên hàm:

o Là tên gọi hàm

o Tên đặt tùy ý nên đặt tên theo quy tắc đặt tên để có

đồng ngầm định lập trình viên dễ tìm, dễ nhớ (

o Hãy xem cách khởi tạo hàm giống khởi tạo biến chỗ Đều

cần kiểu liệu tên Có thể có từ khóa Tên để tái sử dụng hàm nơi mong muốn

Kiểu trả về: từ khóa void, hay kiểu liệu int, long, bool, SinhVien… Thân hàm: Nó khối lệnh thực thi hàm gọi

Quyền truy cập: Nó sử dụng để xác định khả truy cập hàm ứng dụng bao gồm quyền sau: public, private, protected

Tham số: Nó danh sách tham số mà truyền vào gọi hàm Lưu ý:

o Mọi hàm phải có cặp ngoặc nhọn { } biểu thị khối lệnh

Mọi dòng code xử lý hàm viết bên cặp ngoặc nhọn { }

o Không thể khai báo hàm hàm khác theo cách thông

thường

Một hàm hay thấy với cấu trúc bắt buộc phải có lập trình C# console hàm Main

7.3 Nguyên tắc hoạt động hàm

Hàm void hàm có kiểu trả void Chúng ta xem qua khai báo hàm sau:

void Demo() {

// some code return;

(74)

Vì hàm void (hàm có kiểu trả void) khơng cần viết return; nên bỏ return;

void Demo() {

// some code }

Một lưu ý sau: viết code console C# Bắt buộc phải có hàm Main Nhưng hàm Main lại có từ khóa static Nên để hàm Main sử dụng hàm mà ta viết hàm phải có từ khóa static Static void Main(string[] args)

{

// Gọi lại hàm đềỉ sưỉ dụng

Console.OutputEncoding = Encoding.UTF8; Demo();

Console.ReadKey(); }

static void Demo() {

Console.WriteLine(“Chào mừng đềấn với mỗn Lập trình Windows Forms”);

}

Kết xuất dòng chữ “Chào mừng đến với mơn Lập trình Windows Forms” viết bên hàm Main Nhưng thật gọi từ hàm Demo

Khi sử dụng hàm ta gọi lại tên hàm kèm theo dấu () biểu thị hàm Sau có parameter thêm giá trị vào bên dấu ()

Chúng ta gọi lại nhiều lần thấy code viết rõ ràng dễ tái sử dụng

static void Main(string[] args) {

// Gọi lại hàm nhiềều lấền

// dòng chữ Called from Demo! HowKteam.com in nhiềều lấền

Console.OutputEncoding = Encoding.UTF8; Demo(); Demo(); Demo(); Demo(); Console.ReadKey(); }

static void Demo() {

Console.WriteLine(“Chào mừng đềấn với mỗn Lập trình Windows Forms”);

(75)

Nhiều dịng chữ “Chào mừng đến với mơn Lập trình Windows Forms” in hình

Hàm có kiểu trả khác void

Với hàm có kiểu trả khác void Trong thân hàm bắt buộc phải có dịng return <Giá trị trả về>;

Giá trị trả phải có kiểu liệu tương ứng với Kiểu liệu trả khai báo hàm

/// <summary>

/// Hàm traỉ vềề giá trị sỗấ nguyền thỗng qua tền hàm

/// Lưu ý giá trị traỉ vềề phaỉi kiềỉu liệu với kiềỉu traỉ vềề cuỉa hàm

/// Ởỉ kiềỉu int /// </summary>

/// <returns></returns> static int ReturnANumber() {

// bắất buộc phaỉi có cấấu trúc return thấn hàm return 5;

}

Có thể sử dụng hàm bình thường, có thêm lợi lấy giá trị trả hàm thông qua lời gọi tên hàm

Static void Main(string[] args) {

Console.WriteLine(ReturnANumber()); Console.ReadKey();

} /// <summary>

/// Hàm traỉ vềề giá trị sỗấ nguyền thỗng qua tền hàm

/// Lưu ý giá trị traỉ vềề phaỉi kiềỉu liệu với kiềỉu traỉ vềề cuỉa hàm

/// Ởỉ kiềỉu int /// </summary>

/// <returns></returns> static int ReturnANumber() {

// bắất buộc phaỉi có cấấu trúc return thấn hàm return 5;

}

Kết số xuất hình 7.4 Cách truyền tham số

(76)

Kết chương trình

(77)

Kết chương trình

Hình 7.2 Kết hàm trả giá trị 7.5 Sử dụng hàm

Trong c# có cách gọi hàm gọi giá trị (call by value), gọi tham chiếu (call by Reference) dùng tham số out

7.5.1 Gọi giá trị (call by value)

Trong C#, gọi giá trị tức tham số truyền vào giá trị gốc, bên thân hàm có thay đổi giá trị tham số truyền vào sau kết thúc gọi hàm giá trị gốc khơng thay đổi

Ví dụ:

Kết chương trình

Hình 7.3 Kết gọi hàm giá trị 7.5.2 Gọi tham chiếu (call by Reference)

(78)

Hình 7.4 Kết gọi hàm tham chiếu 7.5.3 Tham số out

Tham số out giống kiểu tham chiếu, ngoại trừ việc khơng yêu cầu biến khởi tạo trước truyền

(79)

Kết chương trình

Hình 7.5 Kết gọi hàm tham số out Như cần phân biệt ref out sau:

Bảng 7.1 Phân biệt giữ ref out

ref out

Giá trị phải khởi tạo trước Giá trị không khởi tạo trước bên thân hàm khơng đọc nó gán giá trị Bên thân hàm đọc vào

thay đổi giá trị

Hàm phải gán giá trị cho biến out trước trả giá trị

Câu hỏi ôn tập tập

(80)

BÀI 8: THIẾT KẾ LỚP ĐỐI TƯỢNG

Mã bài: 19.08 Giới thiệu:

Lớp đối tượng dùng để lưu trữ danh sách thuộc tính phương thức đối tượng phân biệt dự án lập trình

Mục tiêu:

- Lập danh sách lớp đối tượng ứng với chương trình cụ thể - Thiết kế lớp đối tượng cho tập nhóm

- Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm Nội dung chính:

8.1 Định nghĩa lớp đối tượng

Lập trình hướng đối tượng (Object-oriented programming – OOP), kỹ thuật lập trình mà điều cốt yếu cần trừu tượng hóa vấn đề thành đối tượng (đối tượng có liệu ứng xử) Kỹ thuật OOP có tính chất

Tính trừu tượng (abstraction) mơ tả cách tổng qt hóa mà không chi tiết thông tin (triển khai với interface, abstract)

Tính đóng gói (encapsulation) liệu đối tượng cố gắng nằm trong hộp đen, thành phần khác bên ngồi đối tượng khơng trực tiếp tác động đến liệu

Tính đa hình (polymorphism) đối tượng ứng xử khác tùy trường hợp cụ thể

Tính kế thừa (inheritance) đặc tính lớp kế thừa từ lớp khác Trong lập trình hướng đối tượng, lớp (class) kiểu liệu định nghĩa tập hợp biến (thuộc tính) phương thức (gọi chúng member – thành viên lớp) Từ lớp sinh đối tượng (object), đối tượng gọi instance of a class (bản triển khai class), đối tượng có giá trị liệu cụ thể (lưu thành viên biến) Các phương thức (method) – định nghĩa ứng xử đối tượng – dựa theo liệu chúng

(81)

Một thực thể có trạng thái hành vi gọi đối tượng Ví dụ máy pha cà phê, xe đạp, xe máy, quạt

Một đối tượng có ba đặc điểm:

 Trạng thái: Đại diện cho liệu (giá trị) đối tượng

 Hành vi: Đại diện cho hành vi (chức năng) đối tượng gửi tiền, rút tiền,

 Danh tính: Danh tính đối tượng thường cài đặt thông qua ID ID ẩn user bên Tuy nhiên sử dụng nội máy ảo JVM để định danh đối tượng Ví dụ: Bút chì đối tượng Tên A, màu trắng, gọi trạng thái Nó sử dụng để viết, viết gọi hành vi

Đối tượng(Object) thể lớp(Class) Lớp mẫu hoặc thiết kế từ đối tượng tạo Vì vậy, đối tượng thể (kết quả) lớp

Ví dụ: Một lớp mô tả chung nhân viên, đặt tên nhanvien, bên nó định nghĩa thành viên liệu (biến) như: manv, tennv, ngaysinh, gioitinh Cũng định nghĩa thành viên hàm (phương thức) để mơ tả ứng xử như: khoitao(), them()

Khi có định nghĩa lớp nhanvien, tạo đối tượng cụ thể mà

đối tượng có liệu khác Nhân viên A, Nhân viên B

8.2 Khai báo lớp đối tượng

(82)

Hình 8.1 Màn hình để chọn thêm lớp vào Project

Hình 8.2 Màn hình đặt tên cho lớp đối tượng

(83)

Cú pháp, ví dụ khai báo lớp

Khi giải vấn đề thực tiễn, vấn đề cần giải cần tìm cách trừu tượng hóa thành vấn đề tổng qt, có đặc tính gì, ứng xử Từ định nghĩa lớp để thực hóa vấn đề trừu tượng

Cú pháp sau:

<Access Modifiers> class Class_Name

{

// khai báo thành viền liệu (thuộc tính – biềấn)

// khai báo thành viền hàm (phưởng thức)

}

Trong Access Modifiers từ khóa sau:

Bảng 8.1 Bảng mơ tả từ khóa định nghĩa lớp

Từ khóa Giải thích

Public Truy xuất nơi

Protected Truy xuất nội lớp lớp Internal Truy xuất nội chương trình (Assembly) protected internal Truy xuất nội chương trình (assembly)

trong lớp

private (mặc định) Chỉ truy xuất nội lớp

Ví dụ: Khai báo lớp có tên Box gồm thuộc tính: chiều dài, chiều rộng, chiều cao

(84)

Câu hỏi ôn tập tập

1 Tạo lớp đối tượng sinh viên bao gồm thông tin: masv (mã sinh viên), tennv (tên sinh viên), ngaysinh (ngày sinh), diachi (địa chỉ)

(85)

BÀI : ĐỊNH NGHĨA CÁC THUỘC TÍNH, PHƯƠNG THỨC HÀNH ĐỘNG CHO LỚP ĐỐI TƯỢNG

Mã bài: 19.09 Giới thiệu:

Việc xác định thuộc tính lớp đối tượng chuẩn bị sẵn phương thức hoạt động cho lớp đối tượng giúp cho việc sử dụng lập trình dễ dàng nhiều

Mục tiêu:

- Định nghĩa thuộc tính cho lớp đối tượng

- Định nghĩa phương thức hành động cho lớp đối tượng - Vận dụng thuộc tính, phương thức lớp đối tượng đồ án - Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm

Nội dung chính:

9.1 Định nghĩa thuộc tính cho lớp đối tượng Ví dụ:

- Định nghĩa lớp đối tượng Box gồm thuộc tính chieudai, chieurong, chieucao

(86)(87)

Trong hình lập trình để khai báo sử dụng lớp đối tượng Box chương trình Main ta sử dụng câu lệnh sau:

Từ khóa this

Từ khóa this dùng phương thức lớp, tham chiếu đến đối tượng sinh từ lớp Sử dụng this để tường minh, tránh không rõ ràng truy cập thuộc tính, phương thức để lấy đối tượng lớp làm tham số cho thành phần khác

Ví dụ, hàm setchieucao, viết: public void setchieucao(int chieucao) {

this.chieucao = chieucao ; }

Nếu viết thiếu this chieucao = chieucao , làm cho khó hiểu khơng biết gán chieucao từ tham số hàm cho chieucao liệu lớp

9.2 Định nghĩa phương thức hành động cho lớp đối tượng Phương thức khởi tạo – Constructor

Phương thức khởi tạo phương thức lớp, thi hành đối tượng tạo (bởi toán tử new), phương thức khởi tạo có tên trùng với tên lớp, khơng có kiểu trả

(88)

Nếu khai báo vào khởi tạo giống chương trình báo lỗi tạo đối tượng Box cần gán giá trị ban đầu cho đối tượng: chiều dài, chiều rộng, chiều cao

Lúc sử sau:

Kết tương tự ví dụ trên, việc sử dụng hàm khởi tạo đảm bảo liệu đối tượng bắt buộc phải khởi tạo đối tượng tạo – tránh việc sử dụng đối tượng mà liệu khơng xác

Phương thức Destructor C#

Một destructor C#, hàm thành viên đặc biệt lớp, thực thi đối tượng lớp khởi phạm vi

Một destructor có tên giống tên lớp với ngã (~) trước có thể: khơng trả giá trị không nhận tham số

Destructor C# hữu ích để giải phóng tài ngun nhớ trước khỏi chương trình Destructor khơng thể bị kế thừa nạp chồng

(89)

Chương trình viết Program.cs

Kết thực chương trình

(90)

Kỹ thuật tải phương thức (Method Overloading) cách thức triển khai khái niệm tính đa hình lập trình hướng đối tượng Q tải phương thức phương thức có tên tham số khác (hàm trả kiểu liệu khác nhau)

Tính đa hình (polymorphism) cách ứng xử đối tượng - ứng xử là khác tùy thuộc vào tình cụ thể

Public static void WriteLine();

public static void WriteLine(bool value); public static void WriteLine(decimal value); public static void WriteLine(int value);

Điều giúp cho gọi Console.Writeline(a), tùy thuộc vào kiểu liệu a mà hàm WriteLine tương ứng thi hành

Ví dụ:

public class OverloadingExample

{

public static int Sum(int a, int b) {

return a + b; }

public static double Sum(double a, double b) {

return a + b; }

}

Lớp có hàm Sum tải, tùy thuộc vào kiểu tham số mà hàm Sum cụ thể gọi

double a = 1; double b = 2;

var c = OverloadingExample.Sum(a, b); // c = có kiềỉu double

int a = 1;

int b = 2;

var c = OverloadingExample.Sum(a, b); // c = có kiềỉu int

Chú ý: Khai báo hai hàm tên, giống hoàn toàn tham số chỉ khác kiểu trả gây lỗi.

Tính đóng gói lập trình hướng đối tượng

(91)

C# triển khai tính đóng gói sử dụng Access Modifiers: public private protected internal khai báo lớp, phương thức, thuộc tính, trường liệu (biến)

Ví dụ:

class Student

{

private string Name; }

Khi sử dụng

var s = new Student(); s.Name = “ABC”;

Biên dịch lỗi error CS0122: ‘Student.Name’ is inaccessible due to its protection level Vì trường Name private khơng thể truy cập code bên lớp Nhưng thay public khơng lỗi

Khi lập trình cố gắng tối đa ẩn thơng tin bên lớp nhiều tốt để đảm bảo tính đóng gói kỹ thuật lập trình OOP, giúp cho code dễ bảo trì giám sát lỗi

Câu hỏi ôn tập tập

1 Lớp đối tượng sinh viên bao gồm thông tin: masv (mã sinh viên), tennv (tên sinh viên), ngaysinh (ngày sinh), diachi (địa chỉ), diemtoan (điểm toán), diemvan (điểm văn) Viết phương thức phù hợp cho lớp để gán thơng tin, tính điểm trung bình

2 Lớp đối tượng đồng hồ bao gồm thông tin: thoigian, gio, phut, giay Viết phương thức đổi giây liệu nhập vào

(92)

BÀI 10: SỬ DỤNG FORM, MENUSTRIP

Mã bài: 19.10 Giới thiệu:

Form Menustrip đối tượng cần thiết lập trình ứng dụng Windows Forms Bản thân Form tạo chương trình chạy, Menustrip điều khiển có mặt hầu hết chương trình ứng dụng thực tế

Mục tiêu:

- Trình bày vận dụng Form cho đồ án - Trình bày vận dụng MenuStrip cho đồ án

- Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm Nội dung chính:

10.1 Form

Form : đối tượng cửa sổ chương trình chứa đối tượng khác

(93)

Hình 10.2 Màn hình lựa chọn tạo project

Hình 10.3 Màn hình quản lý điều khiển Form Chọn nơi lưu

Chọn ứng dụng Windows Forms Chọn ngơn ngữ

Thuộc tích điều khiển

Quản lý dự án

(94)

Để ẩn/hiện đối tượng hình làm việc vào View  ToolBox/

Properties/…

Hình 10.4 Lựa chọn hiển thị cho cửa sổ

Danh mục điều khiển

(95)

10.2 Thuộc tính Form

Bảng 10.1 Bảng mơ tả thuộc tính Form

Thuộc tính Mơ tả

Name Đặt tên form

AcceptButton

Giá trị thuộc tính nhận tên button form Khi thay nhấp chuột vào button để thực thi người dùng ấn phím Enter bàn phím

Backcolor Thiết lập màu form

BackgroundImage Thiết lập hình cho form

BackgroundImageLayou t

Thiết lập việc hiển thị hình vừa thêm thuộc tính BackgroundImage hiển thị form dạng: bình thường (None), (Center), …

CancelButton

Giá trị thuộc tính nhận tên button form Khi thay nhấp chuột vào button để thực thi người dùng ấn phím Escape bàn phím

ControlBox

Mang giá trị true false Nếu thiết lập thuộc tính false loại bỏ nút minimize nút maximize form

Cusor Thiết lập hình dạng trỏ di chuyển

con trỏ vào form

Enable

Mang giá trị true false; Nếu thiết lập thuộc tính false điều khiển form không cho phép người dùng thao tác

Font Thiết lập văn hiển thị điều khiển

ForeColor Thiết lập màu mặc định cho chuỗi

điều khiển form

FormBorderStyle Thiết lập đường viền form hành vi

của form chạy chương trình

HelpButton

Mang giá trị true false; Nếu thiết lập thuộc tính true titlebar nút có dấu ? (nút hai thuộc tính

MinimizeBox

MaximizeBox thiết lập false)

(96)

titlebar form

KeyReview

Mang giá trị true false: thiết lập thuộc tính true cho phép kiện bàn phím form có hiệu lực

Location

Khi thuộc tính StartPosition thiết lập Manual, thuộc tính Location có tác dụng thiết lập vị trí hiển thị form hình

MaximizeBox

Mang giá trị true false: thiết lập thuộc tính false nút maximize form titlebar

MaximumSize Thiết lập kích thước lớn form

(chiều rộng x chiều cao)

MinimizeBox

Mang giá trị true false: thiết lập thuộc tính false nút minimize form titlebar

MinimumSize Thiết lập kích thước nhỏ form

(chiều rộng x chiều cao)

Opacity Thiết lập độ suốt cho form

Size Kích thước form

StartPosition Vị trí hiển thị form hình

Text Chuỗi văn hiển thị Titlebar

Form

Visible

Mang giá trị true false: thiết lập thuộc tính True form hiển thị hình, False khơng hiển thị hình

WindowState

Có giá trị: Normal: hiển thị form bình thường; Minimized: chạy chương trình form bị thu nhỏ taskbar; Maximized: form hiển thị có kích thước đầy hình

IsMDIContainer

Mang giá trị True False

- Nếu True: Form dạng MDI Form - Nếu False: Form dạng bình thường

MdiParent

Cài đặt giá trị đối tượng MDI Form Khi thiết lập giá trị cho thuộc tính MdiParent form trở thành Child Form

Bảng 10.2 Bảng mô tả giá trị FormStartPosition

(97)

Manual

Nếu StartPosition mang giá trị Manual vị trí form hiển thị vị trí thiết lập thuộc tính Size.

CenterScreen Form hiển hình WindowsDefaultLocatio

n

Form hiển thị vị trí mặc định với kích thước form kích thước form thiết lập thuộc

tính Size

WindowsDefaultBounds Form hiển thị vị trí mặc định với kích thước form kích thước mặc định

CenterParent Form hiển thị vị trí form cha Hiển thị Form1 vị trí hình

Form1.StartPosition =

FormStartPosition.WindowsDefaultLocation;

Hình 10.6 Màn hình lập trình để cài đặt Form chạy đầu tiên

Dòng lệnh form hiển thị form1 Do đó, lập trình viên cần sữa lại mã lệnh định form khác muốn hiển thị cách thay tên form cho form1

Ví dụ : Hiển thị form có tên Form2 dự án

Application.Run(new Form2());

Ví dụ 2: Viết chương trình hiển thị form cho kiện Form_load(): Nhập tên Form để chạy

Thay đổi tên form để chạy form

(98)

Nhấn Ctrl + Shift + B để biên dịch mã nguồn nhấn F5 để thực thi chương trình Mdi Form Child Form

Kết chương trình

Hình 10.7 Kết chương trình form cha – con

(99)

Kết chương trình

Hình 10.8 Kết chương trình form dạng hình ellipse b Sự kiện Form

Sự kiện form hay gọi hành động liên quan đến form Ứng dụng Windows Forms hỗ trợ nhiều kiện đoạn mã tạo kiện sinh cách tự động Để sử dụng kiện form cần thực thao tác sau:

Bước 1: Nhấp chuột trái vào form

Bước 2: Trên cửa sổ Properties tương ứng, nhấp chuột trái vào biểu tượng để mở hộp thoại kiện

(100)(101)

Bảng 10.3 Bảng mô tả kiện form

Sự kiện Mô tả

AutoSizeChanged Xảy thuộc tính Autosize Form chuyển từ True sang False hay ngược lại False sang True

BackColorChange

d Xảy thuộc tính BackColor Form thay đổi Click Xảy người dùng Click chuột vào vùng làm

việc thuộc Form

ControlAdded Xảy điều khiển Add vào Form ControlRemoved Xảy điều khiển bị xóa khỏi Form CursorChanged Xảy thuộc tính Cursor Form thay đổi

DoubleClick Xảy người dùng DoubleClick vào vùng làm việc Form

FontChanged Xảy thuộc tính Font Form có thay đổi ForeColorChanged Xảy thuộc tính ForeColor Form có thay

đổi

FormClosed Xảy Form đóng (Nhấn vào nút X màu đỏ titlebar)

FormClosing

Xảy Form đóng (2 kiện FormClosed FormClosing thường dùng lập trình CSDL: xảy kiện đóng kết nối CSDL)

KeyDown Xảy người dùng nhấn phím hay tố hợp phím

KeyPress Xảy người dùng nhấn phím KeyUp Xảy người dùng nhả phím

MouseClick Xảy người dùng nhấn chuột (một lựa chọn: Trái, giữa, phải)

MouseDoubleClick

Xảy người dùng nhấp đúp chuột vào vùng làm việc Form (một lựa chọn: Trái, giữa, phải)

MouseDown Xảy người dùng nhấn chuột

MouseHover Xảy người dùng di chuyển vào vùng làm việc Form

MouseLeave Xảy di chuyển chuột khỏi vùng làm việc Form

(102)

xảy kiện MouseMove Form)

MouseUp Xảy người dùng nhả nhấn chuột (có thể chuột trái, chuột phải, chuột – chuột cuộn)

Move Xảy di chuyển Form (có thay đổi vị trí Form)

StyleChanged Xảy thuộc tính FormBorderStyle Form thay đổi

TextChanged Xảy thuộc tính Text Form thay đổi Sự kiện FormClosed: Sự kiện gọi Form đóng

Sự kiện FormClosing: Sự kiện gọi Form đóng

Sự kiện KeyPress: Xảy ấn phím, khơng rõ phím nhấn nhấn phím kiện KeyPress form xảy

Sự kiện KeyDown:

(103)

10.2 Menustrip

Điều khiển MenuStrip cho phép lập trình viên xây dựng hệ thống menu

form Menu xây dựng dạng cấp nhiều cấp Ví dụ menu Notepad hình 10.10 MenuStrip cho phép xây dụng menu với điều khiển:

ToolStripSeparator

ToolStripMenuItem (Menu con)

ToolStripCombobox (Combobox)

ToolStripTextbox (Textbox)

(104)

MenuStrip đặt nhóm Menus & Toolbars cửa sổ Toolbox

Hình 10.11 Hiển thị điều khiển MenuStrip ToolBox Một số thuộc tính thường dùng MenuStrip:

Bảng 10.4 Bảng mơ tả thuộc tính MenuStrip Thuộc tính Mơ tả

TextDirection

TextDirection Chọn hình thức trình bày menu - Hình thức Horizontal:

- Hình thức Vertical 90: - Hình thức Vertical 270:

Items

Thêm menu Kiểu menu chọn dạng: MenuItem, ComboBox, Separator, TextBox

Dạng MenuItem (menu con): Dạng Combobox:

Dạng TextBox:

Separator (Gạch phân cách):

RightToLeft Mang giá trị Yes No

Nếu Yes trình bày menu từ phải qua trái:

Bảng 10.5 Bảng mô tả thuộc tính thường dùng MenuItem Thuộc tính Mô tả

Checked

Mang giá trị True False

- Nếu True: Hiện biểu tượng CheckBox bên cạnh chuỗi Text

Nếu False: Không biểu tượng CheckBox

CheckOnClick

Mang giá trị True False

- Nếu True: Biểu tượng CheckBox xuất bên cạnh chuỗi Text menu người dùng nhấp

chuột chọn

- Nếu False: Thao tác nhấp chuột người dùng khơng ảnh hưởng đến việc hiển thị hay không hiển thị biểu tượng CheckBox

CheckState Cho biết trạng thái CheckBox menu

(105)

Lưu ý: Trạng thái Indeterminate có hiệu lực thuộc tính Checked True

DisplayStyle

Hình thức trình bày menu Có kiểu hiển thị: - None: Khơng hiển thị menu

- Text: Cho phép hiển thị chuỗi mô tả

- Image: Cho phép hiển thị hình biểu tượng bên cạnh Text

- ImageAndText: Cho phép hiển thị hình (biểu tượng) chuỗi mơ tả

Image Hình ảnh xuất bên cạnh chuỗi Text

ImageScaling

Kiểu trình bày hình thuộc tính Image Có thể thiết lập hai giá trị:

- None: Hiển thị bình thường

- SizeToFit: Hiển thị kích cỡ hình biểu tượng

ShorcutKeys Tổ hợp phím tắt ứng với menu

ShowShortcutKey s

Mang giá trị True hoặc False:

- Nếu True: Cho phép hiễn thị giá trị thuộc tính

ShortcutKeyDisplayString

- Nếu False: giá trị thuộc tính

ShortcutKeyDisplayString sẽ khơng hiển thị

Text Chuỗi ký tự hiển thị menu

TooltipText Chuỗi ký tự hiển thị rê chuột vào menu

Bảng 10.6 Bảng mô tả kiện thường dùng MenuItem

(106)

Menu dạng Separator: Menu dạng đơn đường kẻ ngang giúp ngăn cách menu với nhau, giúp hệ thống menu hiển thị cách rõ ràng

- Menu dạng ComboBox: Các thuộc tính, phương thức kiện giống với điều khiển ComboxBox

- Menu dạng TextBox: Các thuộc tính, phương thức kiện giống với điều khiển TextBox

Câu hỏi ôn tập tập

1 Trong dòng mã lệnh sau đây, mã lệnh cho phép tạo hiển thị đối

tượng Windows Form có tên Form1 a) Form1 frm = new Form1;

frm.Show();

b) Form Form1 = new Form(); Form1.Show();

c) Form1 frm ; frm.Show(); d) Form frm; frm.Show();

e) Form Form1 = new Form(); Form1.ShowDialog();

2 Trong thuộc tính sau, thuộc tính dùng để thiết lập nội dung hiển thị title bar thuộc tính dùng để thiết lập màu form

a) Thuộc tính Text ForeColor b) Thuộc tính Display BackColor c) Thuộc tính Text BackColor

private void Form1_Click(object sender, EventArgs e) {

(107)

Form Form2 = new Form();//Thiết lập tiêu đề titlebar form

Form2.Text = “Giao diện Form 2”; //Thiết lập vị trí hiển thị form

Form2.StartPosition = FormStartPosition.CenterScreen; //Thiết lập màu cho form

Form2.BackColor = Color.CadetBlue;

//Kiểm tra giá trị trả phương thức ShowDialog()

//nếu giá trị trả DialogResult.Cancel Form2 //đã đóng, tiến hành đóng Form1 phương thức

//Close()

if (Form2.ShowDialog() == DialogResult.Cancel) {

this.Close(); }

}

d) Thuộc tính Display ForeColor

3 Các thuộc tính sau, thuộc tính cho phép thiết lập form trở thành MdiForm

a) IsMdiContainer b) MdiParent c) MdiContainer d) ParentForm

4 Các thuộc tính sau, thuộc tính cho phép thiết lập form trở thành Child Form

a) IsMdiContainer b) MdiParent c) MdiContainer d) ParentForm

(108)

a) FormClosed b) FormClosing c) ClosedForm d) ClosingForm e) Load

f) Click

6 Xây dựng form có dạng hình tam giác hình 2.21

Hình 10.12 Thiết kế form dạng tam giác Thiết kế giao diện chương trình hiển thị thời gian sau:

Hình 10.12 Thiết kế form hiển thị MenuStrip Yêu cầu:

Menu Chức năng: Gồm có chức mục Thoát dạng MenuItem Khi người dùng nhấn chuột trái vào Thốt nhấn tổ hợp phím Ctrl + T chương trình

Menu Nội dung hiển thị: Dạng ComboBox ComboBox chứa hai mục chọn: Hiển thị thời gian: Giúp hiển thị phút giây label lblHienThi Hiển thị ngày tháng: Giúp hiển thị ngày tháng năm label lblHienThi

(109)

BÀI 11: SỬ DỤNG LABEL, TEXTBOX, BUTTON

Mã bài: 19.11 Giới thiệu:

Các điều khiển để hiển thị văn (Label), cho phép nhập liệu (Textbox) sử dụng nút lệnh để thực thao tác khơng thể thiếu q trình thiết kế Form

Mục tiêu:

- Trình bày vận dụng Button cho đồ án - Trình bày vận dụng Label cho đồ án - Trình bày vận dụng TextBox cho đồ án

- Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm Nội dung chính:

11.1 Label

Label thường dùng hiển thị thông tin đọc thường sử dụng kèm với điều khiển khác để mô tả chức Labelđược đặt nhóm Common Controls cửa số Toolbox

(110)

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

Bảng 11.1 Bảng mô tả thuộc tính Label

Thuộc tính Mơ tả

BorderStyle Thiết lập đường viền

Font Kích thước kiểu chữ hiển thị Label

Text Nội dung hiển thị Label

Backcolor Màu Label

Name Tên Label

Locked Khóa khơng cho di chuyển

Enabled Đánh dấu tích đối tượng trạng thái hoạt động

Cursor Đổi hình trỏ chuột đưa vào Label

ForeColor Thiết lập màu chữ hiển thị Label

TextAlign Căn lề chữ hiển thị Label

(111)

Ví dụ: Thiết kế form hiển thị thơng tin sinh viên

Hình 11.2 Form hiển thị thơng tin sinh viên Thực chương trình:

Bước 1: Tạo Form có thuộc tính Text = “Giao diện Form 1” Bước 2: Kéo tất Label vào

Bước 3: Áp dụng thuộc tính Text, Font, FontColor… để thực yêu cầu Trong ý hộp thoại sau để chọn chữ gạch

(112)

11.2 TextBox

TextBox điều khiển dùng để nhập chuỗi làm liệu đầu vào cho ứng dụng hiển thị chuỗi.Người dùng nhập nhiều dịng, tạo mặt nạ để nhập mật TextBox đặt nhóm Common Controls cửa số Toolbox

Hình 11.4 Hiển thị điều khiển Textbox Bảng 11.2 Bảng mô tả thuộc tính TextBox

Thuộc tính Mơ tả

Name Tên TextBox để gọi viết lệnh

Text Nội dung hiển thị ban đầu chương trình chạy

Font Chọn kiểu chữ, kích thước chữ cho TextBox

ForeColor Chọn màu chữ cho TextBox

BackColor Chọn màu cho TextBox

Enable Cho phép/Không cho phép thao tác TextBox

Mutiline Cho phép TextBox có nhiều dịng hay khơng

PasswordChar Ký tự thay nhập vào TextBox

ReadOnly Cho phép/Không cho phép sửa liệu TextBox

Visible Ẩn/ TextBox

TextAlign Canh lề liệu TextBox

MaxLength Quy định chuỗi Max nhập vào TextBox, mặc định là32767 ScrollBars Các loại cuộn (dọc, ngang, hai)

WordWrap Cho phép văn tự động xuống dòng độ dài vượt quáchiều ngang TextBox BorderStyle Định kiểu đường viền cho TextBox

TabIndex TabIndex Chỉ định thứ tự tab TextBox form

(113)

CanUndo

Mang giá trị True False, True cho phép thực phương thứcUndo(), mang giá trị True TextBox thực thao tác thêm, sửa hay xóa nội dung

SelectedText Lấy phần nội dung chuỗi bơi đen

SelectionStart Vị trí bắt đầu chọn nội dung chuỗi

SelectionLength Chiều dài chuỗi chọn TextBox

HideSelection

Mang giá trị True False, True khơng cho phép sử dụng thuộc tính SelectionStart, giá trị False cho phép sử dụng SelectionStart

Bảng 11.3 Bảng mô tả kiện TextBox

Sự kiện Mô tả

KeyDown Thực công việc phím nhấn xuống

KeyUp Thực cơng việc phím nhả

KeyPress

Xảy người sử dụng nhấn phím nhả ra, ta dùng kiện để lọc phím khơng muốn nhận cho nhập số (0 đến 9) không cho nhập chuỗi Mỗi kiện KeyPress cho ta cặp kiện KeyDown KeyUp

Click Click Nhấp chuột vào TextBox

DoubleClick Nhấp đúp chuột vào TextBox

MouseEnter Chuột nằm vùng thấy TextBox

MouseHover Chuột nằm vùng hiển thị quãng thời gian

MouseLeave Chuột khỏi vùng nhập liệu TextBox

MouseMove Chuột di chuyển TextBox

TextChanged Giá trị thuộc tính Text bị thay đổi

KeyDown Thực cơng việc phím đượcnhấn xuống KeyUp Thực cơng việc phím đượcnhả ra

KeyPress

Xảy người sử dụng nhấn phím nhả ra, ta dùng kiện để lọc phím khơng muốn nhận cho nhập số (0 đến 9) không cho nhập chuỗi Mỗi kiện KeyPress cho ta cặp kiện KeyDown KeyUp

Click Nhấp chuột vào TextBox

DoubleClick Nhấp đúp chuột vào TextBox

(114)

MouseHover Chuột nằm vùng hiển thị quãng thờigian MouseLeave Chuột khỏi vùng nhập liệu TextBox

MouseMove Chuột di chuyển TextBox

TextChanged Giá trị thuộc tính Text bị thay đổi

(115)

Ví dụ: Thiết kế form thực yêu cầu

Hình 11.5 Form tìm kiếm chuỗi văn bản Thực chương trình:

Bước 1: Tạo Form có thuộc tính Text = “Giao diện Form 1”

Bước 2: Đưa vào form điều khiển sau: Label, Textbox, Button Bước 3: Thực lập trình cho Button

Lập trình kiện Click cho nút Thốt:

Lập trình kiện Click cho nút Tìm kiếm:

11.3 Button

(116)

Hình 11.6 Hiển thị điều khiển Button Bảng 11.4 Bảng mơ tả thuộc tính Button

Thuộc tính Mơ tả

Name Đặt tên cho nút lệnh

Text Nội dung hiển thị nút nhấn

Visible Ẩn/ nút nhấn

Enable Cho phép/ không cho phép tương tác với nútlệnh Font Chỉ định kiểu chữ, kích cỡ chữ hiển thị

ForeColor Màu chữ thị nút lệnh

Image Hình ảnh hiển thị nút lệnh

BackColor Màu nút lệnh

TabIndex Chỉ định thứ tự tab Button form Ví dụ: Thiết kế form xử lý nút lệnh sau

Yêu cầu: Khi nhấp chuột vào nút lệnh “Hiểnthị” in hiển thị chữ “Xin chào” vị trí “ -nội dung hiển thị -”, nhấp chuột vào nút lệnh “Thoát” đóng chương trình

(117)

Thực chương trình:

Bước 1: Tạo Form có thuộc tính Text = “Giao diện Form 1” Bước 2: Đưa vào form điều khiển sau: Label, Button Bước 3: Thực lập trình cho Button

Sự kiện Click nút lệnh btnHienThi:

Sự kiện Click nút lệnh btnThoat:

Câu hỏi ôn tập tập

1 Viết chương trình tạo form tính tổng có giao diện:

Hình 11.8 Form tính tổng số n Yêu cầu:

- Nhập vào số n, kiểm tra liệu nhập n, liệu phải số

- Khi nhấn vào nút Tính kết tổng từ  n tính lưu vào Textbox

“Tổng là”

- Nút Thoát dùng để đóng chương trình, hỏi trước

(118)

Hình 11.9 Form tìm số nhỏ nhất, lớn số Yêu cầu:

- Nhập vào số, kiểm tra liệu nhập, liệu phải số

- Khi nhấn vào nút Tìm kết số lớn nhất, nhỏ lưu vào phù hợp - Nút Thốt dùng để đóng chương trình, hỏi trước

3 Viết chương trình tạo form đến số lần cho lần nhấp chuột trái:

Hình 11.10 Form đếm số lần nhấp chuột Yêu cầu:

- Khi nhấn vào nút “Click here” xuất kết số lần nhấp chuột trái thực nút

- Nút dùng để đóng chương trình, hỏi trước

(119)

Hình 11.11 Thực phép tính số Yêu cầu:

- Nhập vào số, kiểm tra liệu nhập, liệu phải số

- Khi nhập số nhấp vào nút “+/-/*/:” thực phép tính phù hợp đưa kết vào Textbox

- Nút Xóa dùng để xóa trắng lại liệu đưa Form trạng thái ban đầu - Nút Thốt dùng để đóng chương trình, hỏi trước

5 Viết chương trình tạo form có giao diện:

(120)

BÀI 12: SỬ DỤNG CHECKBOX, RADIOBUTTON, GROUPBOX

Mã bài: 19.12 Giới thiệu:

Điều khiển dùng để gom nhóm đối tượng (GroupBox) giúp việc thiết kế tổng hợp điều khiển Form dễ quan sát sử dụng Ngoài điều khiển lựa chọn CheckBox RadioButton cho phép người dùng phép lựa chọn giao diện lập trình

Mục tiêu:

- Trình bày vận dụng Checkbox cho đồ án - Trình bày vận dụng RadioButton cho đồ án - Trình bày vận dụng GroupBox cho đồ án

- Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm Nội dung chính:

12.1 Checkbox

CheckBox điều khiển cho phép trình bày giá trị để lựa chọn form, người dùng chọn nhiều giá trị lúc Điều khiển CheckBox đặt nhóm Common Controls cửa sổ Toolbox

(121)

Bảng 12.1 Bảng mô tả thuộc tính CheckBox

Thuộc tính Mơ tả

AutoCheck

Mang giá trị True False, giá trị True cho phép người dùng nhấp chuột để chọn, False khơng cho phép người dùng nhấp chuột chọn

Checked

Thiết lập cho điều khiển CheckBox lựa chọn không Thiết lập giá trị True điều khiển chọn, thiết lập False điều khiển không chọn

CheckState

Thường dùng để kiểm tra tình trạng CheckBox có chọn hay khơng Mang giá trị Unchecked, Checked, Indeterminate.

Checked: Điều khiển chọn UnChecked: Điều khiển không chọn

Indeterminate: Điều khiển trạng thái không hoạt động Text Chuỗi văn hiển thị bên cạnh CheckBox

ThreeState

Mang giá trị True False; Nếu True cho phép CheckBox có trạng thái: Checked, UnChecked, Indeterminate.

RightToLef t

Mang giá trị Yes No; Cho biết chuỗi văn hiển thị (thuộc tính Text) nằm bên trái hay bên phải CheckBox Sự kiện thường sử dụng CheckBox:

Sự kiện quan trọng thường xuyên sử dụng CheckBox kiện Clickvà CheckedChange Hai kiện CheckBox cho biết nhấp chuột chọn

CheckBox trạng thái chọn (Checked) hay trạng thái không chọn (UnChecked)

(122)

Yêu cầu:

- Khi nhấn nút “Lưu” xuất MessageBox hiển thị thông tin gồm: Họ tên sinh viên, lớp, môn học sinh viên chọn

- Khi nhấn nút “Thốt” đóng chương trình Sự kiện Click nút lệnh btnThoat

(123)

12.2 RadioButton

RadioButton điều khiển cho phép trình bày giá trị để lựa chọn form Điểm khác biệt RadioButtonvới CheckBox người dùng có lựa chọn với RadioButton nhóm, nghĩa RadioButton phân vào nhóm khác Với RadioButton nhóm, người dùng nhấp chọn RadioButton đồng thời RadioButton khác nhóm bỏ chọn Điều khiển RadioButton đặt nhóm Common Controls cửa sổ Toolbox

Hình 12.3 Hiển thị điều khiển RadioButton

Bảng 12.2 Bảng mơ tả thuộc tính RadioButton

Thuộc tính Mơ tả

Checked

Thiết lập cho điều khiển RadioButton lựa chọn không Thiết lập giá trị True điều khiển chọn, thiết lập False điều khiển không chọn

Text Chuỗi văn hiển thị bên cạnh RadioButton

RightToLeft

(124)

Ngoài viêc thiết lập thuộc tính Checked để thay đổi tình trạng RadioButton, lập trình viên sử dụng để kiểm tra tình trạng RadioButton Nếu RadioButton chọn thuộc tính Checked True, RadioButton khơng

được chọn False

(125)

Hình 12.4 Các điều khiển để chứa điều khiển khác Panel, GroupBox Sự kiện thường sử dụng RadioButton:

Tương tự CheckBox, kiện thường dùng RadioButton hai kiện Click CheckedChange Sự kiện Click thực người dùng nhấp chuột vào RadioButton, cịn kiện CheckedChang thực tình trạng RadioButton bị thay đổi từ trạng thái chọn (Checked) sang trạng thái không chọn UnChecked) ngược lại

Ví dụ: Thiết kế chương trình sau:

Hình 12.5 Form lựa chọn danh sách môn học sinh viên Thực chương trình

Bước 1: Tạo Form có thuộc tính Text = “Form 1” Bước 2: Đưa vào form điều khiển

(126)

Sự kiện Click nút lệnh btnThoat

12.3 GroupBox

GroupBox dạng điều khiển chứa, chứa điều khiển khác hiển thị trên form, giúp cho việc thiết kế giao diện form dễ nhìn khoa học

GroupBox không hỗ trợ trượt (ScrollBar) GroupBox có tiêu đề hiển thị, tiêu đề thiết lập thuộc tính Text Nếu khơng muốn hiển thị tiêu đề, thiết lập chuỗi rỗng thuộc tính Text

Hình 12.6 Hiển thị điều khiển GroupBox

Thơng thường GroupBox sử dụng để nhóm điều khiển RadioButton Bảng 12.4 Bảng mô tả thuộc tính GroupBox

(127)

Name Đặt tên cho GroupBox Text Chuỗi hiển thị

Font Thiết lập kiểu chữ, kích thước chữ, ForeColor Thiết lập màu chữ hiển thị

BackColor Thiết lập màu GroupBox Visible

Mang giá trị True False - Nếu True: Hiển thị GroupBox

- Nếu False: Không hiển thị GroupBox

AutoSize

Mang giá trị True False

- Nếu True: GroupBox tự động thay đổi kích thước để hiển thị hết điều khiển chứa bên

- Nếu False: GroupBox có kích thước lập trình viên thiết lập

AutoSizeMod e

Quy định cách thức điều khiển thay đổi kích thước - GrowAndShrink: GroupBox co giãn - GrowOnly: Mặc định, giãn lớn

Ví dụ:

Hình 12.7 Form định dạng chuỗi liệu

Yêu cầu: Khi người dùng nhập chuỗi văn TextBox Label “Chuỗi định dạng” hiển thị chuỗi văn vừa nhập Khi nhấp chuột chọn Radio GroupBox “Màu” GroupBox “Kiểu hiển thị” chuỗi định dạng thay đổi định dạng tương ứng với lựa chọn người dùng

(128)

Bước 1: Tạo Form có thuộc tính Text = “Form 1” Bước 2: Đưa vào form điều khiển

Bước 3: Thực lập trình cho Button Sự kiện Click cho nút btnThoat

Sự kiện TextChanged txtNhapChuoi:

Sự kiện CheckedChanged radXanh:

Tương tự cho RadioButton khác Sự kiện CheckedChanged radInDam:

Sự kiện CheckedChanged radInNghieng:

(129)(130)

Câu hỏi ôn tập tập

1 Viết chương trình tạo form đăng nhập có giao diện

Hình 12.8 Form đăng nhập hệ thống Yêu cầu:

Người dùng nhập tên tài khoản mật TextBox txtTen txtMatkhau - Nếu CheckBox chkHienThi khơng chọn TextBox txtMatkhau dấu * với ký tự người dùng gõ

- Nếu CheckBox chkHienThi chọn TextBox txtMatkhau hiển thị

các ký tự người dùng gõ

Sau nhập xong tên đăng nhập mật Người dùng nhấn Button “Đăng nhập”:

- Nếu tên tài đăng nhập “admin” mật “123456” xuất MessageBox với nội dung: “Đăng nhập thành công”

- Nếu tên tài khoản mật khơng phải “admin” “123456” xuất MessageBox với nội dung: “Không đăng nhập thành công”

(131)

2 Thiết kế giao diện cài đặt chương trình sau

Hình 12.9 Form toán số Yêu cầu:

- Nhập vào số, kiểm tra liệu phải nhập số vào Textbox

- Khi chọn lựa chọn ứng với lựa chọn Label hiển thị tương ứng “Tổng/Hiệu/Tích/Thương”

(132)

BÀI 13: SỬ DỤNG COMBOBOX, LISTBOX

Mã bài: 19.13 Giới thiệu:

ComboBox ListBox hai điều khiển có nhiều điểm tương đồng, sử dụng để chứa liệu cho phép người dùng lựa chọn Ứng với trường hợp cụ thể người dùng sử dụng điều khiển phù hợp

Mục tiêu:

- Trình bày vận dụng ComboBox cho đồ án - Trình bày vận dụng ListBox cho đồ án

- Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm Nội dung chính:

13.1 ComboBox

Mỗi lần chọn giá trị, nhập liệu vào Điều khiển ComboBox đặt nhóm Common Controls cửa số Toolbox

Hình 13.1 Hiển thị điều khiển ComboBox Bảng 13.1 Bảng mô tả thuộc tính ComboBox

Thuộc tính Mơ tả

Text Trả nội dung dòng liệu hiển thị

ComboBox

DropdownStyle Quy định dạng ComboBox, nhận giá trị:

(133)

- Simple: hiển thị theo dạng ListBox + TextBox chọn liệu từ ListBox nhập vào TextBox - DropDownList: cho phép chọn liệu ComboBox

DropDownHeight Thiết lập chiều cao tối đa sổ xuống ComboBox

DropDownWidth Thiết lập độ rộng mục chọn ComboBox

FormatString

Chuỗi định dạng Tất mục chọn

ComboBox

được định dạng theo chuỗi Việc định dạng thực thuộc tính FormattingEnabled thiết lập

là True

FormatingEnable

Mang hai giá trị True False Nếu True cho phép mục chọn ComboBox định dạng lại Nếu

là False khơng thể định dạng

Items Trả mục chứa ComboBox

DataSource

Chọn tập liệu điền vào ComboBox Tập liệu

là mảng chuỗi, ArrayList,

SelectedIndex Lấy số mục chọn, số mục chọn

0

SelectedItem Trả mục chọn

SelectedText Lấy chuỗi hiển thị mục chọn

SelectedValue

Trả giá trị mục chọn ComboBox có liên kết

liệu Nếu không liên kết liệu thuộc tính ValueMember khơng thiết lập thì giá trị thuộc tính

SelectedValue giá trị chuỗi thuộc tính SelectedItem

ValueMember

Thuộc tính định liệu thành viên cung cấp giá

(134)

Ví dụ: Xây dựng chương trình với giao diện sau gồm ComboBox chứa danh sách màu (vàng, xanh, đỏ, đen) Label hiển thị dịng chữ “Hồng Sa, Trường Sa Việt Nam” Yêu cầu chọn màu ComboBox màu dịng chữ Label thay đổi tương ứng

Hình 13.2 Form đổi màu chữ Label Thực chương trình:

Bước 1: Tạo Form có thuộc tính Text = “Form 1” Bước 2: Đưa vào form điều khiển

(135)

Sự kiện Click nút lệnh btnDoiMau:

13.2 ListBox

Tại thời điểm chọn nhiều dịng liệu, khơng cho nhập Điều khiển ListBox đặt nhóm Common Controls cửa số Toolbox

Hình 13.3 Hiển thị điều khiển ListBox Bảng 13.2 Bảng mơ tả thuộc tính ListBox

Thuộc tính Mơ tả

SelectionMode

Cho phép chọn nhiều dòng liệu ListBox,

bao gồm:

One: chọn giá trị

MultiSimple: cho phép chọn nhiều, chọn cách click

vào mục chọn, bỏ chọn cách click vào mục chọn

MultiExtended: chọn nhiều cách nhấn kết hợp với

Shift Ctrl

(136)

MultiExtended Thuộc tínhSelectedItemschứa dịng dữ liệu chọn

SelectedIndices

Được sử dụng SelectionModelà MultiSimple MultiExtended Thuộc tínhSelectedItemschứa số dịng liệu chọn

FormatString

Chuỗi định dạng Tất mục chọn ListBox định dạng theo chuỗi Việc định dạng thực thuộc tính FormattingEnabled thiết lập True

FormatingEnabl e

Mang hai giá trị True False Nếu True cho phép mục chọn ListBox định dạng lại Nếu False khơng thể định dạng

Items Trả mục chứa ListBox

DataSource Chọn tập liệu điền vào ListBox Tập liệu mảng chuỗi, ArrayList,

SelectedIndex Lấy số mục chọn, số mục chọn

SelectedItem Trả mục chọn

SelectedValue

Trả giá trị mục chọn ListBox có liên kết liệu Nếu khơng liên kết liệu thuộc tính ValueMember khơng thiết lập thì giá trị thuộc tính SelectedValue giá trị chuỗi thuộc tính SelectedItem

(137)

Hình 13.4 Form hiển thị danh sách sinh viên chọn Thực chương trình:

Bước 1: Tạo Form có thuộc tính Text = “Form 1” Bước 2: Đưa vào form điều khiển

Bước 3: Thực lập trình cho Button Sự kiện Click cho nút btnThoat

Sự kiện Click nút lệnh btnHienThi:

Câu hỏi ôn tập tập

(138)

Hình 13.5 Form Danh sách thực đơn, Thực đơn ngày ListBox1: Hiển thị danh sách tất ăn

- Button “>”: chuyển chọn từ ListBox1 qua ListBox2 - Button “>>”: chuyển tất từ ListBox1 qua ListBox2 - Button “<”: xóa ăn chọn ListBox2

- Button “<<”: xóa tất ăn ListBox2

- Button “In thực đơn” hiển thị hộp thoại MessageBox với nội dung ăn chọn hiển thị ListBox2

- Button “Thoát” : đóng chương trình

(139)

Hình 13.6 Xử lý danh sách xử lý danh sách số

- Kiểm tra liệu nhập số Gợi ý sử dụng kiện txt1_KeyPress()… - Sau nhập số nhấn “Enter” nút “Cập nhật” số thêm vào ListBox - Nút “Tổng phần tử chẵn” thực việc tính tổng số chẵn danh sách

Gợi ý

- Nút “Đếm số chẵn” thực việc đếm số chẵn danh sách - Chọn số chẵn

(140)

Hình 13.7 Cài đặt nhiều lựa chọn cho Listbox

- Nút “Chọn số chẵn” thực chọn số chẳn danh sách Gợi ý: Sử dụng thuộc tính

- Nút “Thay bình phương” thực việc thay tồn danh sách bình phương

Gợi ý:

- Nút “Xóa số lẻ” thực xóa số lẻ có danh sách Gợi ý:

(141)

Gợi ý:

- Làm tương tự với nút “Xóa cuối danh sách”

- Nút “Xóa phần tử chọn” Lựa chọn phần tử danh sách thực xóa tất phần tử chọn Gợi ý từ nút “Xóa số lẻ”

(142)

BÀI 14: SỬ DỤNG DATETIMEPICKER, MONTHCALENDAR

Mã bài: 19.14 Giới thiệu:

Để tạo kiểu liệu ngày, tháng, năm giao diện Windows Form, Visual Studio hỗ trợ điều khiển DateTimePicker MonthCanlender Mục tiêu:

- Trình bày vận dụng DateTimePicker cho đồ án - Trình bày vận dụng MonthCalendar cho đồ án

- Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm Nội dung chính:

14.1 DateTimePicker

Điều khiển DateTimePicker cho phép người dùng chọn ngày tháng lịch

biểu biểu diễn dạng ComboBox , người

dùng nhấp chuột vào ComboBox sổ xuống lịch biểu Các đối tượng ngày tháng biểu diễn DateTimePicker thực chất đối tượng thuộc lớp DateTime Điều khiển DateTimePicker đặt nhóm Common Controls cửa sổ Toolbox

(143)

Bảng 14.1 Bảng mơ tả thuộc tính DateTimePicker

Thuộc tính Mơ tả

Format Định dạng kiểu hiển thị ngày tháng Lưu ý: Thường sử dụng giá trị kiểu Short

Value Trả giá trị thời điều khiển DateTimePicker Value.Date Trả ngày tháng năm

Value.Day Trả ngày tháng Value.Month Trả tháng

Value.Year Trả năm

Value.DateOfWeek Trả ngày tuần (0 chủ nhật, thứ 2, thứ 3, … thứ 7)

Value.DateOfYear Trả ngày thứ năm CustomFormat

Cho phép tạo định dạng khác ngày tháng Lưu ý: Định dạng ngày tháng năm kiểu Việt Nam phải dd/MM/yyy Khi thuộc tính format phải thiết lập Custom

MaxDate Thiết lập ngày lớn cho phép người dùng chọn điều khiển DateTimePicker

MinDate Thiết lập ngày nhỏ cho phép người dùng chọn điều khiển DateTimePicker

Text Trả ngày hiển thị

Bảng 14.2 Bảng mô tả kiện DateTimePicker

Sự kiện Mô tả

ValueChanged Phát sinh người dùng chọn giá trị khác với giá trị trước điều khiển DateTimePicker CloseUp Phát sinh người dùng kết thúc việc chọn ngày

trên điều khiển DateTimePicker 14.2 MonthCalendar

MonthCalendar điều khiển hiển thị lịch dạng lịch biểu cho phép

người dùng chọn ngày tháng Nhưng khác biệt MonthCalendar cho phép người

(144)

Hình 14.2 Hiển thị điều khiển MonthCalendar Bảng 14.3 Bảng mô tả thuộc tính MonthCalendar

Thuộc tính Mơ tả

MaxDate Thiết lập ngày lớn cho phép người dùng chọn điều khiển MonthCalendar

MinDate Thiết lập ngày nhỏ cho phép người dùng chọn điều khiển MonthCalendar

SelectionRange Trả dãy ngày liên tục chọn người dùng

SelectionStart Trả ngày dãy thuộc tính SelectionRange

SelectionEnd Trả ngày cuối dãy thuộc tính SelectionRange

AnnuallyBoldedDate s

Chứa mảng ngày Trong năm, ngày mảng bôi đen MonthCalendar

BoldedDates

Chứa mảng ngày Các ngày bôi đen điều khiển MonthCalendar năm định

MaxSeclectCount Thiết lập số lượng ngày tối đa mà người dùng chọn

MonthlyBoldedDates Chứa mảng ngày Trong tháng, ngày mảng bôi đen MonthCalendar

(145)

của dãy Số lượng ngày chọn dãy phải nhỏ giá trị thiết lập thuộc tính MaxSeclectCount

Bảng 14.4.Bảng mô tả kiện MonthCalendar

Sự kiện Mô tả

DateChanged Được phát sinh ngày dãy ngày chọn

Câu hỏi ôn tập tập

Viết chương trình minh họa việc hiển thị lịch, thiết kế giao diện form sau Yêu cầu: nhấp nút hiển thị ngày chọn hiển thị MessageBox

(146)

BÀI 15: SỬ DỤNG LISTVIEW, TREEVIEW

Mã bài: 19.15 Giới thiệu:

Điều khiển giúp hiển thị liệu dạng thư mục thu hẹp mở rộng đối tượng Visual Studio phát triển ListView TreeView

Mục tiêu:

- Hiểu vận dụng ListView cho đồ án - Hiểu vận dụng TreeView cho đồ án

- Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm Nội dung chính:

15.1 ListView

ListView điều khiển cho phép hiển thị danh sách đối tượng Mỗi đối tượng hiển thị ListView gọi Item Item đối tượng tạo

từ lớp

ListViewItem Mỗi Item có thuộc tính Text chuỗi ký tự hiển thị cột ListView, Item có SubItem hiển thị cột ListView Điều khiển ListView đặt Common Controls cửa sổ Toolbox:

(147)

Có thể thêm ListViewItem vào ListView cách chọn thuộc tính Items cửa Properties ListView sau:

Hình 15.2 Màn hình đối tượng thêm vào ListView

Sau chọn thuộc tính Items cửa sổ Properties, cửa sổ ListViewItem Collection Editor hiển bên Có thể thêm xóa ListViewItem ListView cách nhấn nút Add Remove

Hình 15.3 Màn hình để thêm đối tượng vào ListView

(148)

Bảng 15.1 Bảng mô tả thuộc tính ListView

Thuộc tính Mơ tả

View

Thuộc tính View qui định cách hiển thị Item

ListView Thuộc tính View có giá trị:

- Detail: Một Icon (Icon lấy từ ImageList) Text

hiển thị cột Tiếp theo SubItem

hiển thị cột tiếp theo.Tuy nhiên để hiển thị Item

dạng Detail tạo thêm Column Header cho ListView

Items

Trả Item chứa ListView Một số

phương thức

và thuộc tính thường dùng ListView.Items: - Count: Đếm số lượng Item ListView

- Insert( i, <Item mới> ): Chèn thêm Item < Item mới> vào vị trí i ListView

- Add(<Item mới>): thêm Item <Item mới> vào cuối ListView

- Remove(<Item cần xóa>): Xóa Item <Item cần

xóa> khỏi ListView

- RemoveAt(i): Xóa Item có số i khỏi ListView - Contains(<Item cần tìm>): Trả True tìm thấy <Item cần tìm> ListView, trả False

nếu khơng có ListView

- IndexOf(<Item cần tìm>): Nếu <Item cần tìm> có ListView thì trả số Item tìm thấy

ListView, khơng tìm thấy trả -1

MultiSelect

True/ False: Cho phép không cho phép chọn

một lúc

nhiều Item ListView FullRowSelect

Khi chọn dịng liệu highlighted dịng hay

(149)

GridLines

Nếu thiết lập True hiển thị dòng cột dạng lưới,

thiết lập False không hiển thị dạng lưới

SelectedItems Trả tập Items chọn ListView LargeImageIcon Gán đối tượng ImageList cho ListView

FocusedItem.Index Trả số dòng chọn ListView SelectedIndices.Coun

t Trả số lượng Item chọn ListView

SelectedIndices

Trả danh sách mục Item chọn myListView.SeletedIndices[0]: trả mục Item

đầu tiên chọn danh sach Item chọn

trong ListView

Bảng 15.2 Bảng mô tả kiện ListView

Sự kiện Mô tả

SelectedIndexChange d

Sự kiện phát sinh có thay đổi mục chọn Item ListView

ItemSelectionChanged Sự kiện phát sinh có thay đổi lựa chọn Item ListView

ItemCheck Xảy trạng thái chọn Item thay đổi

ColumnClick Sự kiện phát sinh column ListView click

MouseClick

Sự kiện phát sinh nhấp chuột chọn Item

(150)

Ví dụ: Thiết kế giao diện form sau:

Hình 15.4 Form Thêm lớp học vào ListView

Yêu cầu: Khi người dùng nhập xong tên lớp số lượng sinh viên, sau nhấn nút “Thêm” ListView chèn dịng vào cuối với tên lớp số lượng vừa nhập

Thực chương trình

Sự kiện Click nút btnThem

(151)

15.2 TreeView

TreeView điều khiển dùng để hiển thị danh sách đối tượng dạng phân cấp hình 15.5

Hình 15.5 Cấu trúc TreeView

Đối tượng TreeView thường gọi node cấu trúc phân cấp TreeView biểu diễn lớp TreeNode Mỗi node TreeView chứa node khác Node chứa node khác gọi node cha (RootNode) node chứa gọi node (ChildNode) Việc sử dụng điều khiển TreeView để hiển thị hữu ich, trình bày theo dạng phân cấp giúp việc hiển thị rõ ràng có hệ thống Điều khiển TreeView đặt nhóm Common Controls cửa sổ Toolbox

(152)

Bảng 15.3 Bảng mô tả thuộc tính TreeView

Thuộc tính Mơ tả

Node Trả đối tượng thuộc lớp TreeNode SelectedNode Trả node chọn TreeView ShowPlusMinus Hiển thị dấu + – trước mổi TreeNode

ShowRootLines Hiển thị đường thằng nối Root Node TreeView

ImageList

Hiển thị hình trước node TreeView

Lưu ý: Phải sử dụng thêm điều khiển ImageList, gán tên đối tượng điều khiển ImageList cho thuộc tính ImageList TreeView

ImageIndex

Giá trị thuộc tính ImageIndex số hình điều khiển ImageList Khi gán số cho thuộc tính ImageIndex hình hiển thị trước node hình có số tương ứng

Lưu ý: Phải sử dụng thuộc tính ImageList trước SelectedImageInde

x

Giá trị thuộc tính SelectImageIndex số hình điều khiển ImageList Khi người dùng chọn node node có hình tương ứng thuộc tính

SelectedImageIndex định

Bảng 15.4 Bảng mô tả kiện TreeView

Sự kiện Mô tả

AfterCollapse Phát sinh thu gọn TreeNode

AfterExpand Phát sinh hiển thị node TreeNode

AfterSelect Phát sinh chọn TreeNode

NodeMouseClic

k Phát sinh chọn node

TreeView điều khiểu để hiển thị node, nhiên việc hiển thị thực chất TreeNode tạo Do để làm việc với node cần sử dụng thuộc tính phương thức lớp TreeNode

Bảng 15.5 Bảng mơ tả thuộc tính TreeNode

Thuộc tính Mơ tả

Nodes Trả tập node

Text Đọc/ gán chuỗi ký tự người dùng nhìn thấy node

(153)

LastNode Trả node cuối NextNode Chuyển đến node PrevNode Lùi lại node trước

Parent Trả node cha node Index Trả số node

Bảng 15.6 Bảng mô tả phương thức TreeNode

Phương thức Mô tả

Nodes.Add Thêm node Nodes.Remove Xóa node

Nodes.Insert Chèn vào node (chèn trước, chèn sau node)

Nodes.Clear Xóa tất node node

Ví dụ: Viết chương trình minh họa việc thêm sửa xóa node TreeView Giao diện thiết kế sau:

Hình 15.7 Form để tạo TreeView Thực chương trình:

Bước 1: Tạo Form đặt tiêu đề Form phù hợp Bước 2: Đưa vào form điều khiển

(154)

Sự kiện Click nút btnThemCon:

Sự kiện Click nút btnXoaTaCa:

Sự kiện Click nút btnXoaChon:

Sự kiện Click nút btnMoRong:

Sự kiện Click nút btnThuHep:

(155)

Câu hỏi ôn tập tập

1 Thiết kế Form có giao diện mẫu sau:

Hình 15.8 Form sử dụng ListView Yêu cầu:

Dùng ListView hình ảnh phù hợp để thiết kế Form Thiết kế Form có giao diện mẫu sau:

Hình 15.9 Form sử dụng ListView có CheckBox Yêu cầu:

(156)

3 Thiết kế Form có giao diện mẫu sau:

Hình 15.10 Form sử dụng ListView kết hợp TreeView Yêu cầu:

- Dùng ListView, TreeView hình ảnh phù hợp để thiết kế Form - Phương thức toán gồm: Trả góp, Khốn gọn Bảo hiểm

- Người dùng nhấn chọn xe cần mua ListView, hai điều khiển NumericUpdown Số lượng: Thông tin mua hàng: kích hoạt cho người dùng nhập số lượng thông tin mua hàng

- Khi đặt hàng xong, người dùng nhấn vào button Lưu để lưu lại thông tin mua hàng Thông tin mua hàng hiển thị MessageBox

(157)

BÀI 16: SỬ DỤNG PICTUREBOX, TOOLTIP

Mã bài: 19.16 Giới thiệu:

Việc đưa liệu hình ảnh lên Form Visual Studio hỗ trợ với công cụ PictureBox Điều khiển ToolTip giúp hiển thị mở rộng giải thích, hướng dẫn bên điều khiển khác

Mục tiêu:

- Trình bày vận dụng PictureBox cho đồ án - Trình bày vận dụng ToolTip cho đồ án

- Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm Nội dung chính:

16.1 PictureBox

Cũng Control thường sử dụng trọng C#, PictureBox dùng để hiển thị hình ảnh định dạng Bitmap, GIF, icon, định dạng JPEG Khi lập trình phần mềm cần phải sử dụng tới hình ảnh khơng thể bỏ qua Control

Hình 16.1 Hiển thị điều khiển PictureBox

Đối với PictureBox Control thiết lập thuộc tính ảnh thiết kế Form chạy chương trình Cũng thay đổi hình ảnh PictureBox sử dụng PictureBox để hiển thị thông tin khác Để tải ảnh lên PictureBox ta thực sau:

pictureBox1.Image = Image.FromFile("c:\testImage.jpg");

(158)

pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;

Có tất kiểu hiển thị ảnh PictureBox:

Bảng 16.1 Bảng kiểu hiển thị ảnh PictureBox AutoSize Tự động điều chỉnh kích cỡ ảnh.

CenterImage Căn ảnh

Normal Đặt góc trái phía ảnh vào vị trí góc trái phía

PictureBox

StretchImag e

Giãn nở kích thước theo PictureBox

Ví dụ: Cách sử dụng PictureBox Winform

16.2 ToolTip

Điều khiển Tooltip điều khiển cho phép hiển thị thơng tin thích người dùng đưa chuột qua điều khiển có thiết lập Tooltip Điều khiển Tooltip đặt nhóm Commont Controls cửa sổ Toolbox

(159)

Bảng 16.2 Bảng mô tả thuộc tính Tooltip

Thuộc tính Mơ tả

Active

Mang giá trị True False, thiết lập True Tooltip có hiệu lực hiển thị thơng báo, mang giá trị False Tooltip không hiển thị thông báo

AutomaticDelay Thiết lập thời gian xuất Tooltip vừa đưa chuột đến điều khiển, thời gian tính mili giây

AutoPopDelay

Thời gian hiển thị Tooltip kết thúc người dùng đưa chuột đến điều khiển, thời gian tính mili giây

IsBalloon Quy định kiểu hiển thị Tooltip Nếu thiết lập False kiểu hiển thị Tooltip:

ReshowDelay Thời gian mà Tooltip tắt từ người dùng đưa chuột

khỏi điều khiển, thời gian tính mili giây

ShowAlways Ln hiển thị hìn

ToolTipIcon Biểu tượng xuất bên cạnh chuỗi khai báo

thuộc tính TooltipTitle

ToolTipTitle Chuỗi thị bên cạnh biểu tượng TooltipIcon

UseAnimation Thiết lập hiệu ứng ảnh động biểu diễn Tooltip

được hiển thị

UseFading Thiết lập hiệu ứng mờ dần biểu diễn Tooltip

hiển thị

Bảng 16.3 Bảng mô tả phương thức Tooltip

Phương thức Mô tả

SetTooltip() Thiết lập chuỗi hiển thị Tooltip điều khiển GetTooltip() Lấy nội dung chuỗi hiển thị Tooltip

Clear() Loại bỏ tất TooltipText cho điều khiển form Ví dụ: Viết chương trình tạo giao diện form đăng nhập thực yêu cầu chức

(160)

Hình 16.3 Form hình đăng nhập có chưa ToolTip u cầu:

- Khi rê chuột vào TextBox1: hiển thị dòng ghi “Nhập chuỗi ký không dấu, không khoảng trắng”

- Khi rê chuột vào TextBox2: hiển thị dòng ghi “Nhập ký tự, nhiều 10 ký tự”

- Khi nhấn nút “Đăng nhập”: hiển thị MessageBox với nội dung “Bạn đăng nhập thành công”

- Khi nhấn nút “Thốt”: khỏi chương trình Thực chương trình:

Bước 1: Tạo Form có thuộc tính Text = “Giao diện Form 1”

Bước 2: Đưa vào form điều khiển sau: Label, Textbox, Button Bước 3: Thực lập trình cho Button

Sự kiện Click nút btnDangNhap:

(161)

Câu hỏi ôn tập tập

1 Thiết kế Form có giao diện sau:

(162)

2 Thiết kế Form có giao diện sau:

Hình 16.5 Màn hình hiển thị Tooltip Yêu cầu:

(163)

BÀI 17: SỬ DỤNG CHECKLISTBOX, NUMERICUPDOWN

Mã bài: 19.17 Giới thiệu:

Việc kiểm tra liệu số nhập vào Textbox Visual Studio hỗ trợ điều khiển khác NumericUpDown Để tạo danh sách liên tiếp CheckBox trình hoạt động dễ dàng

Mục tiêu:

- Trình bày vận dụng CheckListBox cho đồ án - Trình bày vận dụng NumericUpDown cho đồ án - Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm Nội dung chính:

17.1 CheckListBox

Điều khiển CheckedListBox cung cấp tất khả hộp danh sách cho phép hiển thị dấu kiểm bên cạnh mục hộp danh sách

Hình 17.1 Hiển thị điều khiển CheckListBox

(164)

public int Add (object item, bool isChecked);

Có thể thêm mục riêng lẻ vào danh sách phương thức Thêm Đối tượng CheckedListBox hỗ trợ ba trạng thái thông qua bảng liệt kê CheckState: Checked, Indeterminate Unchecked

checkedListBox1.Items.Add("Sunday", CheckState.Checked); checkedListBox1.Items.Add("Monday", CheckState.Unchecked); checkedListBox1.Items.Add("Tuesday",

CheckState.Indeterminate);

Hình 17.3 Kết việc thêm vào đối tượng vào CheckListBox Hay thêm phương thức khác sau

string[] days = new[] { "Sunday", "Monday", "Tuesday" }; checkedListBox1.Items.AddRange(days);

Thêm đối tượng danh sách ChekedListBox gán giá trị mặc định Checked:

(165)

17.2 NumericUpDown

Điều khiển NumericUpDown cách đơn giản người

sử dụng lựa

chọn giá trị mà rơi số nhỏ số lớn

Hình 17.4 Hiển thị điều khiển NumericUpDown

Điều khiển chấp nhận số nguyên, giá trị thập phân làm tròn

Điều khiển NumericUpDown kiểm sốt bốn thuộc tính

số nguyên

Minimum, Maximum, Value, Increment

Những thuộc tính Minimum Maximum xác định giá trị nhỏ giá trị lớn điều khiển

- Thuộc tính Value giá trị điều khiển

(166)

Ngoài ra, người sử dụng thay đổi thuộc tính Value cách gõ vào giá trị điều khiển Nếu giá trị mà người sử dụng nhập vào nằm

giữa

giá trị Minimum Maximum, hai thuộc tính Value Text thay đổi để giá trị nhập vào Nếu giá trị vượt ngồi tập giới hạn, thuộc tính Text nhận giá trị nhập vào, thuộc tính Value nhận giá trị thuộc tính Maximum Để người sử dụng nhập liệu vào điều khiển, ta thiết đặt thuộc tính ReadOnly true

Khi người sử dụng thay đổi giá trị điều khiển NumericUpDown ,

kiện ValueChanged thực Sự kiện ValueChanged thực giá trị thay đổi thông qua mã hay qua mũi tên lên xuống Sự kiện khơng thực người sử dụng nhập vào điều khiển Đoạn code sau trình bày việc sử dụng điều khiển NumericUpDown để xử lý kiện ValueChanged

Ví dụ bên tạo sử dụng NumericUpDown có vùng giá trị nhỏ lớn 32

(167)

Bước 1: Tạo Form có thuộc tính Text = “Dental Payment Application” Bước 2: Kéo tất điều khiển vào Form

Bước 3: Áp dụng thuộc tính điều khiển để thực yêu cầu Trong ý hộp thoại sau để chọn chữ gạch

Hình 17.6 Màn hình để cài đặt Tối đa – Tối thiểu NumericUpDown Câu hỏi ôn tập tập

Thiết kế chương trình giống hình sau:

Yêu cầu

a Thiết kế giao diện chương trình đặt tên đối tượng

b Khi khách hàng vào chọn loại cafe Cột “số lượng” mặc định màu ô “Đơn giá” đổi thành màu vàng

(168)(169)

BÀI 18: SỬ DỤNG PANEL, SPLITCONTAINER, TABCONTROL

Mã bài: 19.18 Giới thiệu:

Ngồi chức gom nhóm điều khiển khác thành nhóm chức GroupBox học trước Visual Studio cịn có điều khiển khác Panel, SplitContainer, TabControl để gom nhóm điều khiển khác Mục tiêu:

- Trình bày vận dụng Panel cho đồ án

- Trình bày vận dụng SplitContainer cho đồ án - Trình bày vận dụng TabControl cho đồ án

- Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm Nội dung chính:

18.1 Panel

Cũng GroupBox, Panel điều khiển dùng để chứa điều khiển khác

Panel có thuộc tính AutoSize, AutoSizeMode GroupBox thuộc tính đường viền BorderStyle Label

Điểm khác biệt Panel với GroupBox điều khiển Panel khơng có tiêu đề mơ

tả (khơng có thuộc tính Text) có trượt ScrollBar ngang ScollBar dọc (có thuộc tính AutoScroll)

Điều khiển Panel đặt nhóm Containers cửa sổ Toolbox

(170)

Bảng 18.1 Bảng mô tả thuộc tính Panel

Thuộc tính Mơ tả

AutoScroll

Mang giá trị True False

- Nếu True: Panel tự động xuất trượt kích thước Panel khơng thể hiển thị hết điều khiển

chứa bên

trong

- Nếu False: Panel không hiển thị trượt

BorderStyle

Kiểu đường viền Panel hiển thị Có giá trị: None, FixedSingle Fixed3D

- None: Không hiển thị đường viền

- FixedSingle:Quanh Panel hiển thị đường viền đơn

- Fixed3D: Hiển thị đường viền Panel dạng chiều 18.2 SplitContainer

Điều khiển SplitContainer giúp phân chia form thành hai phần Cụ thể

SplitContainer cấu tạo hai điều khiển Panel, Panel điều khiển

(171)

Hình 18.2 Hiển thị điều khiển SplitContainer

Các Panel hỗ trợ trượt (ScrollBar) thuộc tính AutoScroll thiết

lập True

Tuy nhiên Panel SplitContainer khơng có thuộc tính BorderStyle để thiết lập đường viền, điều khiển chứa SplitContainer, thuộc tính BorderStyle đặt điều khiển SplitContainer Các giá trị thuộc tính BorderStyle SplitContainer gồm giá trị Panel: None, Fixed3D, FixedSingle.

Vạch phân cách Splitter phân cách theo chiều dọc chiều ngang tùy thuộc vào thuộc tính Orientation Thuộc tính Orientation mang hai giá trị để thiết lập SplitContair là: Vertical Horizontal sau:

Hình 18.3 Các kiểu hiển thị điều khiển SplitContainer

Nếu không muốn cho người dùng dịch chuyển vạch phân cách Splitter để thay đổi kích thước hai Panel, lập trình viên thiết lập thuộc tính IsSplitterFixed SplitContainer True Ngồi điểm đặc biệt có thể định khơng cho phép thay đổi kích thước Panel1 Panel2 cách kết hợp thuộc tính FixedPanel thuộc tính IsSplitterFixed bảng sau:

Bảng 18.2 Bảng mơ tả thuộc tính IsSplitterFixed FixedPanel

Thuộc tính Tác dụng

IsSplitterFixed = False

Thuộc tính FixedPanel khơng có hiệu lực Người dùng thay đổi kích thước Panel1 Panel2

IsSplitterFixed = True

Thiết lập thuộc tính FixedPanel:

(172)

vạch phân cách Splitter để thay đổi kích thước Panel1 Panel2 Nhưng kích thước hai Panel sẽ thay đổi SplitContainer có thuộc tính Dock Fill người dùng thay đổi kích thước form. - FixedPanel = Panel1: Người dùng khơng thể thay đổi kích thước Panel1 (Khi thay đổi kích thước form kích thước Panel2 thay đổi, kích thước Panel1 không đổi)

- FixedPanel = Panel2: Người dùng khơng thể thay đổi kích thước Panel2 (Khi thay đổi kích thước form

thì kích thước Panel1 thay đổi, kích thước Panel2 khơng đổi)

Một hai Panel SplitContainer ẩn cách thiết lập thuộc tính Panel1Collapsed Panel2Collapsed True Việc ẩn hai Panel có có tác

dụng với Panel Nghĩa thiết lập hai thuộc tính Panel1Collapsed Panel2Collapsed True Khi Panel1Collapsed True thì Panel2Collapsed False ngược lại

Bảng 18.3 Bảng mô tả thuộc tính SplitContainer

Thuộc tính Mơ tả

BorderStyle Thiêt lập đường viên cho SplitContainer Gồm giá trị: None, FixedSingle, Fixed3D.

FixedPanel Cố định kích thước Panel SplitContainer Gồm giá trị: None, Panel1, Panel2

IsSplitterFixed Mang hai giá trị True False Nếu True, cố định vạch phân cách Splitter

Orientation Xác định vạch phân cách Splitter phân cách theo chiều ngang hay dọc Gồm giá trị: Vertical, Horizontal

Panel1Collapse

d Mang hai giá trị True False Nếu True ẩn Panel1 Panel1MinSize Lấy kích thước nhỏ thiết lập kích thước nhỏ

cho Panel1 Panel2Collapse

d Mang hai giá trị True False Nếu True ẩn Panel2 Panel2MinSize Lấy kích thước nhỏ thiết lập kích thước nhỏ

(173)

SplitterDistance

Trả khoảng cách pixel từ Splitter đến cạnh bên trái (nếu hai Panel nằm dọc) hay đến cạnh (nếu hai Panel nằm ngang)

SplitterWidth thiết lập độ rộng vạch phân cách Splitter

Ví dụ: Viết chương trình có giao diện hình bên Gồm: điều khiển SplitContainer với Panel1 chứa điều khiển ListView Panel2 chứa điều khiển WebBrowser

Yêu cầu: Người dùng nhập đường dẫn website vào TextBox nhấn nút thêm Đường dẫn website vừa nhập đưa vào ListView Người dùng hiển thị website WebBrowser cách nhấp chuột vào đường dẫn chứa ListView

Hình 18.4 Form dùng điều khiển kết hợp Panel để phân bổ, gom nhóm Thực chương trình:

Bước 1: Tạo Form có thuộc tính Text = “Form 1” Bước 2: Đưa vào form điều khiển

Bước 3: Thực lập trình cho Button Sự kiện Click cho nút btnThoat

(174)

Sự kiện Click nút btnThem:

Sự kiện Click nút btnCapNhat:

Sự kiện Click nút btnXoa:

Sự kiện MouseClick listLinkWebsite:

3 TabControl

TabControl điều khiển dạng Containers, chứa diều khiển

khác Điểm đặc biệt TabControl cho phép thể nhiều page form Mỗi page chứa nhiều điều khiển khác bên Điều khiển

(175)

Hình 18.5 Hiển thị điều khiển TabControl TabPage:

Thuộc tính quan trọng TabControl TabPage Một TabControl có nhiều TabPage Người dùng nhấp vào tab để chuyển đổi qua lại TabPage với

Hình 18.7 Hiển thị giao diện TabControl

(176)

Hình 18.8 Màn hình để thêm TabPage

Điều khiển TabPage có nhiều điểm giống với điều khiển Panel TabPage hỗ trợ trượt cần thuộc tính AutoScroll thiết lập True, có thuộc tính BorderStyle để thiết lập đường viền quanh TabPage với giá trị: None, FixedSingle, Fixed3D Tuy nhiên có điềm khác biệt với Panel TabPage hỗ trợ thuộc tính Text, chuỗi mơ tả thiết lập thuộc tính Text hiển thị tab TabPage:

Hình 18.9 Màn hình hiển thị TabPage giao diện Bảng 18.4 Bảng mô tả thuộc tính TabControl

Thuộc tính Mơ tả

Appearance Thuộc tính định TabPage hiển thị hình dạng Có giá trị: Normal, Button FlatButtons

Alignment

Thuộc tính xác định tab hiển thị trên, dưới, trái hay phải TabControl Gồm giá trị:

Multiline Mang hai giá trị True False

(177)

tab số lượng tab vượt phạm vi kích thước TabControl

Nếu False: Chỉ cho phép tab hiển thị dòng TabPages Chứa tập các TabPage có TabControl

TabCount Trả số lượng TabPage mà TabControl có SelectedTab Trả điều khiển TabPage chọn SelectedIndex Trả vị trí TabPage chọn

Ví dụ: Viết chương trình quản lý nhân hình 18.9 18.10 Chương trình gồm TagPage: TagPage Quản lý nhân viên TagPage Quản lý giáo viên

TagPage quản lý nhân viên: Cho phép thêm, sửa xóa nhân viên Thông tinh

nhân viên cần quản lý bao gồm: Họ tên nhân viên, chức vụ nhân viên, hệ sốlương lương

TagPage Quản lý giáo viên: Cho phép thêm sửa xóa giáo viên Thông tin giáo

viên cần quản lý gồm: Họ tên giáo viên, chức vụ giáo viên, tiền giảng tiết, số tiết dạy học vị giáo viên

(178)

Hình 18.11 Màn hình Tab Quản lý nhân viên Sự kiện Click btnCapNhatNV:

(179)

Sự kiện Click btnXoaNV:

Sự kiện SelectedIndexChanged listNhanVien:

Câu hỏi ôn tập tập

(180)

Hình 18.12 Form tự động phát sinh nút Yêu cầu:

- Khi nhấn F5 chạy chương trình xuất giao diện yêu cầu

- Người dùng nhập tổng số Button cần phát sinh TextBox txtTongNut; nhập

(181)

Hình 18.13 Màn hình kết nhập liệu

Khi người dùng nhấn vào nút nhấn xuất thông báo “Bạn vừa nhấn nút: _” Riêng nút số 10 người dùng nhấn xuất thông báo “Chúc mừng bạn trúng 01 tỉ USD”

(182)

BÀI 19: TẠO KẾT NỐI, ĐÓNG KẾT NỐI CƠ SỞ DỮ LIỆU

Mã bài: 19.19 Giới thiệu:

Việc kết nối sở liệu lập trình quan trọng, giúp cho q trình thao tác giao diện lập trình phần sở liệu thực cách tối ưu

Mục tiêu:

- Trình bày cách thức kết nối sở liệu

- Sử dụng kiểu liệu để mở kết nối đóng kết nối sở liệu - Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm

Nội dung chính:

19.1 Các kiểu liệu kết nối

ADO.NET ? Là mơ hình cho phép người lập trình thao tác với nhiều loại sở liệu theo cách CSDL SQL Server, MS Access, Oracle, …

ADO.NET ?

 Là mơ hình cho phép người lập trình thao tác với nhiều loại sở liệu theo cách

 CSDL SQL Server, MS Access, Oracle, …

 Ứng với loại CSDL NET Framework Data Provider thích hợp

(183)

Hình 19.1 Các mơ hình kết nối sở liệu .NET Framework Data Provider for Microsoft SQL Server

 Tối ưu kết nối với SQL Server (từ phiên 7.0)  Kết nối trực tiếp không thông qua ODBC OLE DB  Các lớp cung cấp thuộc System.Data.SqlClient

.NET Framework Data Provider for OLE DB  Sử dụng native OLE DB

 SQLOLEDB provider  MSDAORA provider

 Microsoft.Jet.OLEDB.4.0 provider

 Các lớp cung cấp thuộc System.Data.OleDb .NET Framework Data Provider for ODBC

 Sử dụng native ODBC Driver Manager  SQL Server driver

 Microsoft ODBC for Oracle driver  Microsoft Access driver

 Các lớp cung cấp thuộc System.Data.Odbc .NET Framework Data Provider for Oracle

(184)

 SQL Server driver

 Microsoft ODBC for Oracle driver  Microsoft Access driver

 Các lớp cung cấp thuộc System.Data.OracleClient Các lớp Data Provider

 IDbConnection Interface

o Dùng để tạo kết nối (connection) đến CSDL Được cài đặt cho

các lớp Data Provider

o Ví dụ: với Data Provider for SQL Server sử dụng lớp

SqlConnection  IDbCommand Interface

o Dùng để thực câu lệnh, truyền tham số, nhận kết

quả trả Được cài đặt cho lớp Data Provider

o Ví dụ: với Data Provider for SQL Server sử dụng lớp

SqlCommand  IDataReader Interface

o Dùng để đọc liệu theo cách forward-only read-only

 IDataAdapter Interface

o Dùng để đọc liệu từ CSDL lưu DataSet

o DataSet CSDL thu nhỏ đặt nhớ máy client o Người dùng thao tác DataSet ghi lại thay đổi trở

lại CSDL

o Dữ liệu đọc lưu DataSet liệu XML

Quy trình kết nối đến CSDL

 Tạo đối tượng Connection xác định chuỗi kết nối (Connection String)  Tạo đối tượng Command xác định câu lệnh SQL

 Mở đối tượng Connection (Open)

 Thực câu lệnh SQL xử lý kết (Execute)  Đóng đối tượng Connection (Close)

(185)

Thông tin chuỗi kết nối  Tên Server  Tên Database

 Kiểu đăng nhập (Windows SQL Server)  Tên user

 Mật

19.2 Tạo kết nối liệu

(186)

Hình 19.3 Lựa chọn kết nối sở liệu

(187)(188)

Hình 19.6 Kiểm tra kết nối

(189)

Hình 19.8 Màn hình lựa chọn đối tượng sở liệu

(190)

Kết nối lệnh

19.3 Đóng kết nối sở liệu

- Thuộc tính SqlConnection để đóng kết nối đến CSDL Open()

- Việc đóng kết nối đến CSDL giúp giải phóng kết nối đến CSDL làm việc

- Giảm tải việc tranh chấp liệu truy cập liệu

(191)

Câu hỏi ôn tập tập

1 Thực tạo sở liệu QLBANHANG gồm bảng sau:

KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK)

NHANVIEN (MANV,HOTEN, NGVL, SODT) SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA) HOADON (SOHD, NGHD, MAKH, MANV

Tạo kết nối đến CSDL

2 Thực tạo sở liệu QLNHANVIEN gồm bảng sau:

SINHVIEN(MASV, HOTENSV, NU, NGAYSINH, NOISINH,TINH,MALOP) LOP(MALOP,TENLOP, MAKHOA)

KHOA(MAKHOA,TENKHOA)

MONHOC(MAMH,TENMH,DONVIHT)

GIANGVIEN(MAGV,HOTENGV,HOCVI,CHUYENNGANH,MAKHOA) KETQUA(MASV, MAMH, LANTHI, DIEMTHI)

(192)

BÀI 20: TRUY XUẤT CƠ SỞ DỮ LIỆU BẰNG DATASET

Mã bài: 19.20 Giới thiệu:

Lập trình sở liệu phần quan trọng lập trình ứng dụng, trung gian kết nối người sử dụng với sở liệu

Với công nghệ ADO.NET có chuẩn thống để lập trình thao tác với nguồn sở liệu khác Access, MySQL, SQL Server, Oracle… lập trình ứng dụng với dạng WinForm WebForm

Tìm hiểu đối tượng quan trọng ADO.NET để lập trình với CSDL như: Connection, Command, DataReader, DataAdapter, DataSet để kết nối đến hệ quản trị CSDL SQL Server

Mục tiêu:

- Trình bày cơng dụng Control Dataset

- Sử dụng control Dataset để truy xuất sở liệu - Vận dụng control Dataset cho đồ án

- Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm Nội dung chính:

20.1 Định nghĩa Dataset.

DataSet đối tượng chứa nhiều DataTable với mối liên hệ chúng (relationship) kể ràng buộc (constraint) lưu hoàn toàn nhớ để làm việc offline Qua viết này, hiểu cấu trúc DataSet, DataTable nạp liệu, tạo Relation, Constraint thao tác liệu đối tượng liệu

Cấu trúc DataSet DataTable

Để làm việc với DataSet DataTable cần thêm (Import) thư viện hàm sau:

Namespace: System.Data

(193)

Hình 20.1 Mơ tả đối tượng DataSet

Các property DataSet DataTable dùng để lưu trữ collection Bảng 20.1 Bảng mô tả DataSet

Kiểu Tên Mô tả

DataTableCollection Tables Lấy liệu bảng chứa đối tượng System.Data.DataSet

DataRelationCollectio

n Relations

Lấy liệu quan hệ liên kết với bảng cho phép định hướng từ bảng cha đến bảng

Bảng 20.2 Bảng mô tả DataTable:

Type Name Description

DataColumn Columns Lấy liệu cột bảng DataRow Rows Lấy liệu cột bảng

20.2 Thao tác truy xuất liệu với Dataset.

Để truy xuất liệu DataSet cần thực bước sau: Bước 1: Kết nối đến CSDL

(194)

Bước 3: Dùng thuộc tính Fill để đưa liệu từ SqlDataAdapter vào DataTable thông qua DataSet

Bước 4: Từ thao tác truy xuất sở liệu Code thực hiện:

Thực bước đoạn Code sau:

Các bước 2, 3, đoạn code bên đưa vào kiện _Load form để lấy liệu lên DataSet

Câu hỏi ôn tập tập

1 Thực tạo CSDL phần mềm quản trị sở liệu SQL Server giao diện lệnh CSDL QLTHUVIEN sau:

(195)

go

use QLTHUVIEN go

/*=============DANH MUC HỆ ĐÀO TẠO ==============*/ Create table HEDAOTAO

(

MAHE char(5)primary key, TENHE nvarchar(100) not null, )

/*==============DANH MUC SINHVIEN ============*/ Create table SINHVIEN

(

MASV char(10) primary key, TENSV nvarchar(200)not null, NGAYSINH date,

GIOITINH nvarchar(5),

MAHE CHAR (5) references HEDAOTAO (MAHE) )

/*==============NHAP DU LIEU LOAIPHONG=============*/ INSERT INTO HEDAOTAO(MAHE,TENHE)

values('CD',N'Cao đẳng')

INSERT INTO HEDAOTAO(MAHE,TENHE) values('TC',N'Trung cấp')

INSERT INTO HEDAOTAO(MAHE,TENHE) values('SC',N'Sơ cấp')

/*==============NHAP DU LIEU PHONG=============*/

INSERT INTO SINHVIEN(MASV,TENSV,NGAYSINH,GIOITINH,MAHE) values('SV01',N'Nguyễn Văn An', '01/02/2004', 'Nam', 'CD')

(196)

INSERT INTO SINHVIEN(MASV,TENSV,NGAYSINH,GIOITINH,MAHE) values('SV03',N'Lương Xuân Trường', '11/02/2002', 'Nam', 'TC')

INSERT INTO SINHVIEN(MASV,TENSV,NGAYSINH,GIOITINH,MAHE) values('SV04',N'Nguyễn Thị Ngọc Anh', '09/08/2002', N'Nữ', 'CD')

INSERT INTO SINHVIEN(MASV,TENSV,NGAYSINH,GIOITINH,MAHE) values('SV05',N'Trịnh Thị Mến', '09/13/2004', N'Nữ', 'TC')

INSERT INTO SINHVIEN(MASV,TENSV,NGAYSINH,GIOITINH,MAHE) values('SV06',N'Trương Tiến Đạt', '02/04/2004', 'Nam', 'TC')

(197)

BÀI 21: HIỂN THỊ CƠ SỞ DỮ LIỆU BẰNG DATAGRIDVIEW Mã bài: 19.21

Giới thiệu:

Điều khiển giúp hiển thị liệu dạng lưới (bảng) sử dụng để hiển bảng liệu từ sở liệu

Mục tiêu:

- Trình bày công dụng control DataGridView

- Sử dụng control DataGridView để truy xuất hiển thị sở liệu - Vận dụng control DataGridView cho đồ án

- Rèn luyện tính cẩn thận, tự giác, sáng tạo, làm việc nhóm Nội dung chính:

21.1 Ý nghĩa DataGridView.

Là control tổ chức dạng bảng với cột dọc (column) hàng ngang (row), đầu cột có tên cột DataGridView hữu ích trường hợp xuất liệu có cấu trúc mảng chiều, bảng liệu, lưu trữ thống kê, database…

Hình 21.1 Hiển thị điều khiển DataGridView Xử lý cột (Column) DataGridView

(198)

thể thêm cột thiết lập tùy chỉnh cho cột Thêm cột Add Column chỉnh sửa cột Edit Column Các checkbox bên thiết lập cho phép (hoặc khơng) thêm, bớt, chỉnh sửa, xóa liệu DataGridView trình chạy ứng dụng

Nhìn vào bảng Edit Column bên ta thấy trình quản lý column, ta thay đổi tên, text hiển thị đầu dòng số tùy chỉnh layout nhóm chức Layout

Xử lý cột Code.

Bên cách thêm cột cho DataGridView Trong ví dụ ta cần thêm cột nên tạo đối tượng DataGridViewTextBoxColumn thứ tự thiết lập thuộc tính cho cột cuối thông qua phương thức AddRange để Add cột vào DataGridView Trong ví dụ ta thấy cịn có cột nhỏ bên trái DataGridView, để ẩn cột ta thiết lập giá trị False cho thuộc tính RowHeaderVisible

Thêm liệu cho DataGridView

Thông qua phương thức Rows.Add() ta dễ dàng thêm liệu cho DataGridView Ta thấy DataGridView có cột nên đối số phương thức Rows.Add() cần có chuỗi, vị trí sau bị chừa trống Truy xuất liệu DataGridView

DataGridView tổ chức liệu giống mảng chiều thông thường, ta thiết lập truy xuất liệu dễ dàng thông qua số hàng cột Bên ta tiến hành lấy liệu DataGridView thông qua số hàng, cột đưa vào TextBox Lưu ý: liệu Cell (ô) lưu trữ kiểu string Việc gán liệu vào bảng tiến hành tương tự

Event Cell Click

(199)(200)

21.2 Các thiết lập thuộc tính.

Bảng 21.1 Bảng mơ tả thuộc tính DataGridView

Thuộc tính Mơ tả

AutoSizeColumnsMode Các kiểu lựa chọn với Cột (Đặt chế độ khác nhau)

AutoSizeRowsMode Các kiểu lựa chọn với Hàng (Đặt chế độ khác nhau)

BackGroundColor Chọn mầu cho DataGridView

BorderStyle Đặt kiểu đường viền bao quanh cho DataGridView

CellBorderStyle Đặt đường viền cho ô ColumnHeadersBorderStyle Đặt đường viền cho tiêu đề cột ColumnHeadersHeight Đặt chiều cao cho tiêu đề cột

ColumnHeadersVisible Nhận hai giá trị True hay False - True: Cho phép hiển thị tiêu đề cột - False: Không cho phép hiển thị tiêu để

cột

Columns Làm việc với cột (Đặt tiêu đề cho Headers, lựa chọn kiểu cột (Checkbox, Button, Image…) → Trong DataGridView cột là: Cột Button, Cột Checkbox…

DataMember Chọn sở liệu để hiển thị nên DataGridView

DataSource Chọn nguồn liệu cho DataGridView (hai thuộc tính DataSource DataMember hay với nhau)

GridColor Chọn màu cho lưới (các hàng, cột ngăn cách lưới)

MultiSelect Cho phép/Khơng cho phép chọn nhiều dịng? ReadOnly Nhận hai giá trị True hay False

- True: Cho phép thay đổi giá trị các phần tử (các Cell)

- False: không cho phép thay đổi giá trị phần tử

RowHeadersBorderStyle Chọn kiểu viền cho Hàng (Rows) RowHeaderVisible Nhận hai giá trị True hay False

- True: Cho phép hiển thị Headers hàng(Cột mép bên trái) - False: Ngược lại

https://visualstudio.microsoft.com/download https://msdn.microsoft.com/query/dev15.query?appId=Dev15IDEF1&l=en-S&k=k(MSDNSTART)&rd=true PictureBox

Ngày đăng: 10/03/2021, 15:38

TỪ KHÓA LIÊN QUAN

w