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

Giáo trình Visual Basic .NET

109 151 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 109
Dung lượng 5,26 MB

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

Nội dung

Khi vừa tạo mới, màn hình giao tiếp sẽ có tên mặc định là Form1.vb và không chứa đối tượng điểu khiển nào cả, nhiệm vụ của người lập trình là thiết kế các đối tượng điều khiển trên màn h

Trang 1

MỤC LỤC

Chương 1: TỔNG QUAN VỀ VISUAL BASIC NET 3

1.1 Cài đặt Visual Studio NET 3

1.2 .NET Framework 5

1.3 Bắt đầu dự án mới 9

1.4 Viết chương trình Visual Basic đầu tay 12

1.5 Chạy chương trình ứng dụng Visual Basic NET 13

Chương 2: BIỂU MẪU VÀ MỘT SỐ ĐIỀU KHIỂN THÔNG DỤNG 15

2.1 Các khái niệm 15

2.2 Biểu mẫu (Form) 17

2.3 Nhãn (Label) 19

2.4 Nút lệnh (Command Button) 20

2.5 Ô nhập liệu (Textbox) 22

2.6 Các thuộc tính, phương thức cơ bản của các Control 24

2.7 Bảng điều khiển (Control Panel) 24

2.8 Khung (GroupBox) 25

Chương 3: LẬP TRÌNH CẤU TRÚC TRONG VISUAL BASIC 27

3.1 Môi trường lập trình 27

3.2 Kiểu dữ liệu 30

3.3 Hằng số 31

3.4 Biến 31

3.5 Biểu thức 32

3.6 Các hàm xây dựng sẵn 33

3.7 Câu lệnh 34

3.8 Chương trình con và truyền tham số 46

3.9 Kiểu Mảng 50

3.10 Kiểu do người dùng định nghĩa - Kiểu mẩu tin 53

Chương 4: MẢNG CONTROL TRONG VISUAL BASIC 54

4.1 Tạo và thêm một Control mới vào đối tượng 54

4.2 Tạo và thêm một mảng Control mói vào đổi tượng Container 56

4.3 Truy xuất đến phần tử bên trong đổi tượng Container 60

4.4 Xóa phần tử bên trong đổi tượng Container 60

Chương 5: CÁC CONTROL MỞ RỘNG 61

5.1 Danh sách các lựa chọn (List Box) 61

5.2 Hộp lựa chọn (Combo Box) 64

5.3 Hộp đánh dấu (Check Box) 66

5.4 Nút lựa chọn (RadioButton) 67

Trang 2

5.5 Thanh cuộn (ScrollBar) 68

5.6 Thời gian (Timer) 70

5.7 DataGridView 72

5.8 DatetimePicker 73

5.9 SplitContainer 74

5.10 ListView 75

5.11 TreeView 76

5.12 RichTextbox 77

5.13 NotifyIcon 78

5.14 Điều khiển danh sách ổ đĩa (DriveListbox), danh sách thư mục (DirListbox), danh sách tập tin (FileListbox) 78

Chương 6: MENU – DIALOG – TOOLBAR 81

6.1 Menu – MenuStrip (Dropdown Menu) 81

6.2 Menu – ContextMenuStrip (PopUp Menu) 82

6.3 Hộp thoại 83

Chương 7: QUẢN LÝ TẬP TIN VÀ THƯ MỤC 90

7.1 Làm việc với thư mục 90

7.2 Làm việc với tập tin 92

Chương 8: USER CONTROL – DLL VÀ ĐÓNG GÓI ỨNG DỤNG 102

8.1 User Control 102

8.2 DLL 104

8.3 Đóng gói chương trình 105

Trang 3

Chương 1: TỔNG QUAN VỀ VISUAL BASIC NET

Mục tiêu:

 Giới thiệu về môi trường phát triển Visua Basic NET, giúp cho sinh viên có cái nhìn tổng quan về VB NET

Kết thúc chương nắm bắt các vấn đề sau:

 Sử dụng môi trường VB NET để phát triển một số ứng dụng cơ bản

 Cách tạo dự án mới trong VB NET

1.1 Cài đặt Visual Studio Net

Cấu hình tối thiểu: CPU Pentium III, 500MHz trở lên, với 256 MB RAM và ít nhất 10GB Harddisk Hệ điều hành: Window 2000, XP, Vista, 7 Lý do chính là các versions Windows này hỗ trợ Unicode và có Internet Information Server (IIS) hổ trợ ASPX để ta dùng cho ASP.NET

Visual Studio.NET nằm trong 3 CDs, gồm có 4 files:

Việc Unzip files có thể rất lâu, bạn phải kiên nhẫn chờ cho đến khi nó kết thúc Nếu không, khi cài đặt có thể bị báo lỗi là thiếu files

Kế đó, trước hết chạy Setup.exe của Windows Component Update như dưới đây, click No khi Warning dialog

Trang 4

thư mục chính: thư mục VS (chứa các file cài đặt bộ Visual Studio Net 1.17GB) và thư mục MSDN (chứa các thư viện hỗ trợ cho việc sử dụng Visual Studio Net 1.55GB)

Để cài đặt ta vào thư mục VS chạy file Setup.exe để cài đặt, quá trình cài chiếm một khoảng thời gian tùy vào cấu hình máy (trung bình từ 15 – 20 phút)

Sau một số bước lựa chọn bắt buộc sẽ đến 1 giao diện của phần mềm cho phép người dùng lựa chọn gói cài đặt Những lựa chọn trên giao diện này ảnh hưởng đến kích

Trang 5

thước lưu trữ trên đĩa cứng cũng như các bộ công cụ hổ trợ liên quan Thời gian cài đặt nhanh hay chậm phụ thuộc vào gói được chọn cài đặt

Kết thúc quá trình cài đặt ta có thể cài đặt thêm bộ thư viện MSDN hổ trợ người lập trình viên trong quá trình xây dựng dự án

Câu hỏi:

Nêu sự khác nhau giữa các gói cài đặt là Default, Full và Custom?

Bộ thư viện MSDN hỗ trợ người lập trình những gì?

Có thật sự cần thiết phải cài đặt tất cả các công cụ trong bộ MS Visual Studio?

1.2 NET Framework

.NET được developed từ đầu năm 1998, lúc đầu có tên là Next Generation Windows Services (NGWS) Nó được thiết kế hoàn toàn từ con số không để dùng cho Internet

.NET đại diện cho toàn bộ các công nghệ và các khái niệm cấu thành một nền tảng

để người lập trình xây dựng các ứng dụng trên nó

Có thể hiểu NET là một lớp tồn tại bên dưới các ứng dụng và cung cấp một tập các chức năng và dịch vụ cơ bản

.NET framework cung cấp 2 thành phần chính: các lớp cơ sở (NET Framework base class) và sử dụng ngôn ngữ chung (Common Language Runtime) .NET framework cũng cung cấp một tập các hàm API của riêng nó để giúp cho lập trình tận dụng được hết khả năng của nó

Trang 6

.Net Framework là môi trường phát triển phần mềm giúp các lập trình viên có thể xây dựng các ứng dụng nhanh và hiệu quả trên rất nhiều các ngôn ngữ lập trình: VB.Net, C#, ASP.Net, Jscript.Net …

Khi sử dụng Net Framework, chúng ta sẽ không còn phải quá quan tâm đến việc lựa chọn ngôn ngữ nào để phát triển ứng dụng Thậm chí trong 1 ứng dụng ta có thể viết bằng nhiều ngôn ngữ NET khác nhau

 Giới hạn của VB 6.0

Trang 7

 Các thành phần chính của Net FrameWork

Trang 8

.NET application được chia ra làm hai loại: cho Internet gọi là ASP.NET, gồm có Web Forms và Web Services và cho desktop gọi là Windows Forms Windows Forms giống như Forms của VB6 Nó hổ trợ Unicode hoàn toàn, rất tiện cho chữ Việt và thật sự Object Oriented Web Forms có những Server Controls làm việc giống như các Controls trong Windows Forms, nhất là có thể dùng codes để xử lý Events y hệt như của Windows Forms Điểm khác biệt chánh giữa ASP (Active Server Pages) và ASP.NET là trong ASP.NET, phần đại diện visual components và code nằm riêng nhau, không lộn xộn như trong ASP Ngoài ra ASP.NET code hoàn toàn Object Oriented Web Services giống như những Functions mà ta có thể gọi dùng từ các URL trên Internet, thí dụ như Credit Card authorisation ADO.NET là một loại cache database nho nhỏ (gọi là disconnected database) để thay thế ADO Thay vì application connects vĩnh viễn với database mẹ qua ADO, application trong NET làm việc với portable 9 database chỉ chứa một hai tables, là copy từ database mẹ Khi nào cần, portable database nầy (ADO.NET) sẽ được reconciled với database mẹ để update các thay đổi Hai tables trong ADO.NET có thể được related nhau trong Master/Details relationship Vì ADO.NET có chứa original data lẫn data mới nhất nên Rollback trong ADO.NET rất dễ dàng và nhẹ ký XML được yểm trợ tối

đa Nằm phía sau ADO.NET là XML XML có thể là Table of records trong ADO.NET hay Tree of nodes trong DOM (Document Object Model) IO được hổ trợ bằng toàn bộ Stream kể cả Memory Stream và StreamReader/StreamWriter Thêm vào là DataFormatting cho Serialisation để chứa Object xuống binary file hay text file TCP/IP

và http là hai protocols thông dụng nhất trong NET, nhưng chúng làm việc phía sau sân khấu giúp ta gọi một remote procedure (nằm trên computer khác) dễ dàng như một local procedure Kỹ thuật ấy gọi là Remoting Security hổ trợ Cryptography, Permissions và Policy Diagnostics cho ta Debug và Trace Threading rất tiện và đơn giản để implement Lightweight Process Vấn đề Timing trong NET program rất linh động, hiệu quả và chính xác Việc thiết kế Common Language Runtime nhắm vào các mục tiêu chính sau đây:

• Việc triển khai đơn giản và nhanh hơn: developers sẽ dành thì giờ quyết định ráp những software components nào lại với nhau nhiều hơn là lập trình thật sự

• Các công tác thiết yếu ("plumbing") như memory management, process communication được lo liệu tự động

• Các công cụ hổ trợ rất đầy đủ (no more API): NET Framework Base classes rất phong phú cho file, network, serialisation, mã hóa, XML, database, v.v

• Cài đặt đơn giản và an toàn (no more DLL "hell"): chỉ cần xcopy files, giống như thời vàng son của DOS Lý do là NET application chạy trên NET framework, một khi ta đã cài NET framework vào máy rồi thì có đầy đủ mọi DLL cần thiết

Có lẽ trong tương lai Microsoft cài NET framework chung với Windows

Câu hỏi:

Các hàm API là gì?

Phân biệt WinForm và WebForm

NET Framework có bao nhiêu loại?

Trình biên dịch làm nhiệm vụ gì?

Một dự án viết bằng ngôn ngữ VB.NET có thể tích hợp vào một ngôn ngữ lập trình khác hay không?

Trang 9

1.3 Bắt đầu dự án mới:

Vào Start => Programs => Microsoft Visual Studio 2005 => Microsoft Visual Studio 2005 (như hình trên) Visual Studio sẽ khởi động, nếu là lần đầu tiên khởi động thì chương trình sẽ hỏi bạn sử dụng ngôn ngữ gì (ở đây chọn Visual Basic) Nếu là lần thứ 2 trở đi thì sẽ xuất hiện giao diện như hình dưới

Vào File = > New Project Xuất hiện hộp thoại sau:

Chọn Visual Basic => Windows => chọn Windows Application trong cửa sổ bên phải => đặt tên cho Project mới (tên mặc định là WindowsApplication1) => OK

chọn loại ứng dụng sẽ viết

đặt tên cho

dự án

Trang 10

Hộp công cụ (toolbox): chứa các biểu tượng tương ứng với những đối tượng điều khiển chuẩn bao gồm nhãn (label), hộp văn bản (Textbox), nút lệnh (button)… Để bật tắt hộp công cụ ta vào Menu View => Toolbox (Ctrl + Alt + X)

Thực đơn (Menu Bar): cho phép truy cập đến hầu hết các lệnh dùng điều khiển môi trường phát triển Menu và các lệnh trên menu làm việc tương ứng như hầu hết nhưng chương trình Windows thông thường khác

Thiết kế chương trình (Form Designer): Đây là đối tượng xây các màn hình giao tiếp của ứng dụng Khi vừa tạo mới, màn hình giao tiếp sẽ có tên mặc định là Form1.vb

và không chứa đối tượng điểu khiển nào cả, nhiệm vụ của người lập trình là thiết kế các đối tượng điều khiển trên màn hình giao tiếp và sử dụng các dòng lệnh để xử lý các sự kiện thích hợp cho các đối tượng điều khiển đó

Solution Explorer: Quản lý các ứng dụng hiển thị các màn hình giao tiếp (Forms), các Reports và các Module … hiện có của ứng dụng Ngoài ra, còn cho phép người lập trình thực hiện nhanh những thao tác như thêm, xóa các đối tượng này khỏi ứng dụng Cửa sổ thuộc tính (Propertives): Cho phép định thuộc tính ban đầu cho các đối tượng bao gồm màn hình giao tiếp (Forms) và các điều khiển (Control)

Cửa sổ lệnh (Code window): Đây là cửa sổ cho phép khai báo các dòng lệnh xử lý biến cố cho màn hình giao tiếp và các đối tượng trên màn hình giao tiếp Mặc nhiên cửa

sổ này không được hiển thị, người lập trình có thể nhân nút chuột phải lên màn hình giao tiếp và chọn View Code để hiển thị khi cần

Các component

trong Toolbox

Form Designer dùng để thiết kế chương trình

Cửa sổ Solution chứa các file chươn trình trình

Cửa sổ Propertive của các đối tượng

Trang 11

Lưu chương trình: File => Save All (Click vào biểu tượng 3 đĩa mềm đè lên nhau) Xuất hiện cửa sổ sau:

Đặt tên cho dự án trong ô Name, chọn đường dẫn lưu dự án trong ô Location, đặt tên cho Solution (mặc định tên Solution là tên của dự án) Chọn Save để lưu lại

Mở một dự án đã tồn tại:

 Khởi động Visual Studio 2005

 Vào menu File => Open Project

 Chọn Project muốn mở trong hộp thoại dialog Open  OK

Chạy chương trình: Click chuột vào nút Start trên thanh công cụ (hoặc nhấn F5) Chạy file thực thi (.exe): Khi chạy chương trình bằng cách nhấn nút Start (hoặc nhấn phím F5) thì chương trình sẽ tự động tạo file thực thi exe trong thư mục Debug của

dự án đã tạo Hoặc vào menu Build => Build + TênDựÁn để dịch thử chương trình vừa tạo

Lưu ý: Khi chạy chương trình hoặc Build mà còn có lỗi khi viết code (mã lệnh) thì

chương trình sẽ báo lỗi và chỉ ra dòng lệnh có chứa lỗi Đến khi nào không còn lỗi thì chương trình mới có thể chạy đúng hoặc Build thành file thực thi

Trang 12

Câu hỏi:

Chức năng của thanh công cụ (Toolbox) là gì?

Sử dụng thanh thực đơn có thể thay thế hoàn toàn cho thanh công cụ không? Làm thế nào để mở lại thanh công cụ nếu vô tình tắt đi?

Các chức năng cơ bản trên thanh menu có điểm tương đồng với một số chương trình khác như: Word, Excel không?

Làm thế nào để bổ sung một control lên Form Design?

Muốn viết lệnh cho một đối tượng điều khiển trên Form thì có mấy cách thực hiện?

Để chỉnh thuộc tính của bất kỳ đối tượng điều khiển cũng như màn hình giao diện thì thực hiện như thế nào?

Di chuyển qua lại giữa màn hình thiết kế và cửa sổ lệnh bằng cách nào?

1.4 Viết chương trình Visual Basic đầu tay

Ứng dụng mà chúng ta sắp xây dựng dưới đây mang tên Lucky Seven (số 7 may mắn), một chương trình mô phỏng máy chơi lô tô

Giao diện người dùng gồm:

Nút Spin (quay số) khi nhấn vào nút này thì chương trình sẽ chọn ngẫu nhiên 3 số Nút End (Kết thúc) khi nhấn nút này thì sẽ thoát khỏi ứng dụng

Ba đối tượng nhãn (label) có tên lblSoThu1, lblSoThu2, lblSoThu3 dùng để chứa ba

số ngẫu nhiên khi nhấn nút Spin

Một nhãn mang nội dung “Lucky Seven”

Một nhãn dùng để thông báo

Và một hình (picture) được gán thuộc tính Visible = False (tức là ẩn)

Trang 13

Khi nhấn nút Spin sẽ chọn 3 số ngẫu nhiên gán vào 3 nhãn lblSoThu1, lblSoThu2, lblSoThu3 nếu một trong 3 nhãn này có chứa số 7 thì thông báo “YOU WIN”, cho hiện hình lên và phát ra một tiếng bíp Ngược lại, không cho hiện hình và thông báo “YOU LOSE”

Code chương trình:

Imports System.Math

Public Class Form1

Private Sub bttnEnd_Click( ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles bttnEnd.Click

End

End Sub

Private Sub bttnSpin_Click( ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles bttnSpin.Click

Nhấp chuột vào nút Start  (hoặc nhấn F5) trên thanh công cụ chuẩn

File thực thi exe

Khi chạy chương trình bằng cách nhấn nút Start  (hoặc nhấn F5) thì chương trình

sẽ tự động tạo file thực thi exe trong thư mục Debug chứa trong dự án đã tạo

Hoặc vào menu Build => Build + TênDựÁn để dịch thử chương trình vừa tạo

 Lưu ý: Khi chạy chương trình hoặc Build mà còn có lỗi khi viết code (mã lệnh) thì chương trình sẽ báo lỗi và chỉ ra dòng lệnh có chứa lỗi Đến khi nào không còn lỗi thì chương trình mới có thể chạy hoặc Build

 Câu hỏi: Khi tạo ra một file thực thi exe đem qua một máy khác thì có thể chạy file exe này không

Bài tập:

1 Xây dựng 1 ứng dụng đơn giản “Hello World” bằng Console

Trang 14

2 Xây dựng 1 ứng dụng đơn giản “Welcome to VB.NET” bằng giao diện FORM

3 Thiết kế chương trình hiển thị chào mừng như sau:

Yêu cầu:

Chương trình gồm 1 ô nhập liệu (Textbox) và 3 nút lệnh (button) khi nhấn nút:

 Display: ô nhập liệu hiện lên câu: “Welcome to VB.NET”

 Clear: xóa nội dung trong ô nhập liệu

 Exit: thoát chương trình

Code chương trình:

Public Class Form1

Private Sub bttnDisplay_Click( ByVal sender As System Object , ByVal e As

System EventArgs ) Handles bttnDisplay.Click

txtNoiDung.Text = "Welcome to VB.NET"

End Sub

Private Sub bttnClear_Click( ByVal sender As System Object , ByVal e As

System EventArgs ) Handles bttnClear.Click

txtNoiDung.Text = ""

End Sub

Private Sub bttnExit_Click( ByVal sender As System Object , ByVal e As

System EventArgs ) Handles bttnExit.Click

End

End Sub

End Class

Trang 15

Chương 2: BIỂU MẪU VÀ MỘT SỐ ĐIỀU KHIỂN THÔNG DỤNG

Mục tiêu:

 Chương này giới thiệu về một số điều khiển cơ bản để tạo nên giao diện cho các ứng dụng cũng như một số khái niệm trong lập trình với VB.NET, những yêu cầu tối thiểu cần có trong việc “lập trình sự kiện” với VB.NET

Kế thúc chương cần nắm bắt được các vấn đề sau:

 Khái niệm về điều khiển, thuộc tính, phương thức, sự kiện

 Quy tắc đặt tên danh biểu trong lập trình

 Sử dụng biểu mẫu trong thiết kế giao diện

 Sử dụng điều khiển ô nhập liệu, nút nhấn, nhãn, khung

2.1 Các khái niệm:

Điều khiển (control): Các thành phần có sẵn để

người lập trình tạo giao diện tương tác với người dùng

Mỗi điều khiển thực chất là một đối tượng, do vậy nó sẽ

có một số điểm đặc trưng cho đối tượng, chẳng hạn như

các thuộc tính, các phương thức và các sự kiện

Thuộc tính (propertives): Các đặc trưng của một điều khiển tạo nên dáng vẻ riêng của mỗi điều khiển đó

Phương thức: Các điều khiển có thể thực thi một số

tác vụ nào đó, các tác vụ này được định nghĩa sẵn bên

trong các phương thức (còn gọi là chương trình con: hàm

& thủ tục), người lập trình có thể gọi thực thi các phương

thức này nếu cần

Sự kiện: là hành động của người dùng tác động lên ứng dụng đang thực thi

Ví dụ: - Nhấn phím bất kỳ trên bàn phím

- Nhấp chuột

Trang 16

- Nhập dữ liệu vào Textbox

Các thành phần giao diện có khả năng đáp ứng lại sự kiện Chẳng hạn khi chúng ta nhấp chuột vào button, lúc đó button nhận biết được sự kiện này; hay như Textbox nhận biết được sự kiện bàn phím tác động lên nó Một ứng dụng trên Windows thường được thực hiện nhờ vào việc đáp ứng lại các sự kiện của người dùng

Lập trình sự kiện: Các thành phần giao diện có khả năng nhận biết được các sự kiện từ phía người dùng Tuy nhiên khả năng đáp ứng lại các sự kiện được thực hiện bởi người lập trình

Khi một thành phần giao diện được sử dụng, người lập trình phải xác định chính xác hành động của thành phần giao diện đó để đáp ứng lại một sự kiện cụ thể Lúc đó người lập trình phải viết đoạn mã lệnh mà đoạn mã lệnh này sẽ được thực thi khi sự kiện xảy ra Chẳng hạn, trong ứng dụng Paint của Windows; khi người sử dụng nhấp chuột vào nút vẽ hình elip sau đó dùng chuột vẽ nó trên cửa sổ vẽ, một hình elip được vẽ ra

Trong lập trình sự kiện, một ứng dụng được xây dựng là một chuỗi các đáp ứng lại

sự kiện Tất cả các hành động của ứng dụng là đáp ứng lại các sự kiện Do vậy người lập trình cần phải xác định các hành động cần thiết của ứng dụng; phân loại chúng; sau đó viết các đoạn mã lệnh tương ứng

Cách xác lập các thuộc tính & các phương thức trong chương trình

<Name của điều khiển>.<Tên thuộc tính>

<Name của điều khiển>.<Tên phương thức>[(<Các tham số>)]

Ví dụ: txtHoTen.Text = “Nguyễn Vũ Duy Quang”

txtHoTen.SelectAll()

Tên điều khiển (thuộc tính Name)

Đây là thuộc tính xác định tên của điều khiển trong ứng dụng Tên này được đặt theo quy tắc:

 Tên có thể dài từ 1 - 256 ký tự

 Tên phải bắt đầu với ký tự chữ, có thể chữ hoa hay thường

 Sau ký tự đầu tiên, tên có thể chứa ký tự, số hay dấu gạch dưới

Ví dụ: Num, StudentCode, Class12A2 là những tên hợp lệ 345, 7Class là nhữg tên không hợp lệ

Gợi ý cách đặt tên: nên đặt tên theo từng nhóm đối tượng, kết hợp với chức năng của control Ví dụ Textbox thì đặt tên bắt đầu là txtTenCanDat, label là lblTen, buttom là bttnTen, ComboBox là cboTen, Form là frmTenForm … để dễ phân biệt khi lập trình

Trang 17

Câu hỏi:

Để chỉnhthuộc tính của mỗi control thì chúng ta sử dụng cửa sổ nào trên màn hình thiết kế giao diện Form?

Liệt kê một số cách để tiến hành viết lệnh cho 1 control nào đó trên Form

Mỗi phương thức của control VB.NET là có sẵn và người dùng chỉ việc sử dụng hay người dùng phải tự định nghĩa các phương thức đó?

Mỗi sự kiện xảy ra trên một control có thể tác động đến các control khác hay không?

Sự kiện trên các control VB.NET có thể tự phát sinh hay không?

Bất kỳ một phương thức nào của control đều cần có tham số truyền vào?

Tên control 2014_txt_HoTen đúng hay sai?

2.2 Biểu mẫu (Form)

a Khái niệm:

Chương trình ứng dụng giao tiếp với người dùng thông qua các biểu mẫu (hay còn gọi là cửa sổ, xuất phát từ chữ Form hay Windows); các điều khiển (Control) được đặt lên bên trên giúp cho biểu mẫu thực hiện được công việc đó Biểu mẫu là các cửa số được lập trình nhằm hiển thị dữ liệu và nhận thông tin từ phía người dùng

b Thuộc tính

 Name: thuộc tính này như là một định danh nhằm xác

định tên của biểu mẫu là gì? Ta sẽ sử dụng thuộc tính này để

truy xuất đến các thuộc tính khác cùng với phương thức có thể

thao tác được trên biểu mẫu

 Icon: hình icon được dùng trong thanh tiêu đề của form,

nhất là khi form thu nhỏ lại

 StartPosition: xác định vị trí ban đầu của form trên màn

hình khi form vừa nạp (Manual, CenterScreen,

WindowsDefaultLocation, WindowsDefaultBounds,

CenterParent)

 WindowState: xác định trạng thái ban đầu của form

(Normal, Minimized, Maximized )

 Text: Văn bản hiển thị trên thanh tiêu đề của form

(tương ứng với thuộc tính cation trong VB6)

 BackgroundImage: xác định tập tin làm hình nền cho

form (tương ứng thuộc tính picture trong VB6)

 BackColor: Màu nền form

 FormBorderStyle: Kiểu đường viền form

 Opacity: Cho phép thay đổi độ sáng tối của form, có thể làm mờ form khi hiển thị Giá trị mặc định là 100% Đây là thuộc tính mới so với VB6

 ControlBox: Cho phép bật/tắt hộp điều khiển thu nhỏ, phóng lớn và đóng Mặc định có giá trị là True

 Cursor: Kiểu con trỏ khi thao tác trên form

 Font: Chọn Font chữ cho form

Trang 18

 ForceColor: Chọn màu cho font chữ

 KeyPreview: Mặc định có thuộc tính là False Cho phép form nhận các giá trị nhấn

từ bàn phím

 MaximizeBox: Cho phép bật/tắt nút phóng to trên ControlBox

 MinimizeBox: Cho phép bật/tắt nút thu nhỏ trên ControlBox

 Size: thay đổi kích thước form

c Phương thức

 Location: di chuyển biểu mẫu đến tọa độ x,Y: Location = new point(X, Y)

 Close: đóng form (chưa giải phóng bộ nhớ)

 Dispose: đóng form và giải phóng bộ nhớ

 Focus: đặt form ở trạng thái được chọn

 Hide: ẩn form

 Refresh: làm tươi form

 SetBounds(x, y, w, h): xác định vị trí và kích thước cho form

 SetDesktopLocation(x, y): đặt vị trí form trên màn hình desktop

 Show: hiển thị form

 Form_FormClosing: Mỗi lần form đóng lại thì sự kiện FormClosing sẽ được phát sinh Ta thường dùng sự kiện này để thao tác đến các thành phần khác đang mở trước khi form được đóng lại

 Form_Resize: Sự kiện này xảy ra mỗi khi form thay đổi kích thước

 Form_KeyPress: Sự kiện này xảy ra khi ta nhấn một phím bất kỳ Ta thường dùng

để kiểm tra các phím vừa nhấn từ bàn phím

 Ngoài ra còn có các sự kiện xử lý nhấn phím là: KeyDown, KeyUp,

Form_MouseEnter… xảy ra khi ta thao tác chuột trên Form

e Thiết kế Form:

Thêm 1 control vào Form:

- Bước 1: Trên thanh công cụ Toolbox, chọn Control cần sử dụng

- Bước 2: Click chọn vị trí mà Control đó sẽ xuất hiện

- Bước 3: Thay đổi lại độ rộng hoặc vị trí cho thích hợp và đẹp mắt

- Bước 4: Đặt tên và khai báo các thuộc tính cho Control mới thêm vào

Thay đổi thuộc tính Control đã thêm:

- Bước 1: Chọn Control cần thay đổi ở trên Form

Trang 19

- Bước 2: Thay đổi các thông tin về thuộc tính của Control bằng cách sử dụng cửa sổ Properties trên màn hình thiết kế Form

Xử lý sự kiện:

- Cách 1: Double click vào Control cần viết xử lý sự kiện

- Cách 2: ở cửa sổ code view chọn Control và chọn Sự kiện tương ứng

Câu hỏi:

Số lượng control trên Form có giới hạn không?

Để bỏ qua hộp điều khiển (min, max, close) trên Form thì thiết lập lại thuộc tính nào?

Phương thức nào trên Form giúp ta đóng Form lại?

Để khóa việc thao tác trên Form, ta thiết lập thuộc tính nào?

Sự kiện Form_Load xảy ra khi nào?

Sự kiện gì được phát sinh khi Form thay đổi kích thước?

Kể tên một số sự kiện liên quan đến thao tác nhấn phím và chuộ?

2.3 Nhãn (Label)

a Khái niệm:

Nhãn là điều khiển dạng đồ họa cho phép người sử dụng

hiển thị chuỗi ký tự trên biểu mẫu nhưng họ không thể thay

đổi chuỗi ký tự đó một cách trực tiếp

b Thuộc tính:

Name: Đây là một tên xác định một định danh, người lập

trình có thể thay đổi tên này theo cách của mình để tiện sử

dụng

Text: Thuộc tính quy định chuỗi ký tự hiển thị khi ta tạo

một điều khiển nhãn Khi ta tạo mới một điều khiển thì thuộc

tính text có giá trị mặc nhiên là “Label…”

Ví dụ: Ta muốn tạo một nhãn là “Chào mừng bạn đến với

Visual Basic”, ta thay đổi giá trị của thuộc tính text thành

“Chào mừng bạn đến với Visual Basic”

Ta có thể thay đổi giá trị của thuôc tính text tại thời điểm ứng dụng đang chạy nhờ vào đoạn mã lệnh đơn giản như sau:

Trang 20

lblThongBao.text = "Đã đổi giá trị text" với lblThongBao là tên của điều khiển nhãn

mà ta muốn đổi

TextAlign: Vị trí hiển thị chuỗi trên nút

BorderStyle: Xác định kiểu đường viền cho nhãn (none, fixsingle, fix3d)

Font, Fore Color: Quy định kiểu chữ, kích thước, màu hiển thị

BackColor: Quy định màu nền của nhãn trong trường hợp không trong suốt Chọn backcolor là Transparent trong tab Web của cửa sổ chọn màu để có màu nền giống với màu đối tượng hoặc đang chứa label

Image: Chọn hình cho nhãn

Visible: Có giá trị mặc định là True, dùng để ẩn hiện khung

TabIndex: Số thứ tự của đối tượng trên Form Ta có thể nhấn phím Tab trên bàn phím để chuyến đổi qua lại giữa các đối tượng bằng chỉ số Tabindex Chỉ số nào được tự động tạo ra khi ta thêm một đối tượng vào Form

c Phương thức:

Location: di chuyển nhãn đến tọa độ X,Y: Location = new point( X, Y)

Hide:Ẩn Label trên Form

Show: Hiển thị Label trên Form

Focus: Đặt Label ở trạng thái được chọn

SetBounds(x,y,w,h): xác định vị trí và kích thước của Label

Dispose: Xóa vùng nhớ liên quan đến đối tượng được khai báo

d Sự kiện:

TextChanged: Xảy ra mỗi khi nhãn thay đổi giá trị

Click: Mỗi khi nhãn được chuột nhấp lên, sự kiện này xảy ra

DoubleClick: Xảy ra khi người sử dụng nhấp đúp chuột lên điều khiển nhãn

Câu hỏi:

Thuộc tính nào của Label được sử dụng nhiều nhất khi thiết kế giao diện?

Để thiết lập đường viền cho Lable ta sử dụng thuộc tính nào?

Phương thức nào giúp ẩn Label trên Form?

Để canh lên cho văn bản trên Label ta thiết lập thuộc tính nào?

Bài tập:

Thiết kế chương trình đơn giản gồm 1 form được đặt tiêu đề “Làm quen với control label” Kéo 4 label với các tên lblHoTen, lblDienThoai, lblNgaySinh, lblNoiSinh Thay đổi các thuộc tính font, fore color, borderstyle… cho mỗi label

2.4 Nút lệnh (Command Button)

a Khái niệm:

Nút lệnh là một điều khiển dùng để bắt đầu, ngắt

hoặc kết thúc một quá trình Khi nút lệnh được chọn thì nó

trông như được nhấn xuống, do đó nút lệnh còn được gọi

là nút nhấn (Push Button) Người dùng luôn có thể chọn

một nút lệnh nào đó bằng cách nhấn chuột trên nút lệnh đó

Trang 21

b Thuộc tính:

Name: sử dụng như một định danh nhằm xác định tên của nút lệnh

Text: Dùng văn bản hiển thị trên nút lệnh

TextAlign: Canh vị trí hiển thị chuỗi trên nút

BackColor: Định màu nền cho nút

Enabled: Trong một biểu mẫu, có thể có nhiều nút lệnh để thực hiện nhiều công việc khác nhau và tại một thời điểm nào đó ta chỉ được phép thực hiện một số công việc Nếu giá trị thuộc tính Enabled là False thì nút lệnh đó không có tác dụng Giá trị mặc định của thuộc tính này là True Ta có thể thay đổi giá trị của thuộc tính tại thời điểm chạy ứng dụng

TabIndex: Số thứ tự của đối tượng trên Form Ta có thể nhấn phím Tab trên bàn phím để chuyến đổi qua lại giữa các đối tượng bằng chỉ số Tabindex Chỉ số nào được tự động tạo ra khi ta thêm một đối tượng vào Form

Font, Fore Color: Quy định kiểu chữ, kích thước, màu hiển thị

Image: Chọn hình icon cho nút

ImageAlign: Vị trí hiển thị hình trên nút

TextImageRelation: Quy định cách trình bày giữa Text và Image

Locked: Khóa hay không khóa điều khiển Button

BackgroundImage: Chọn hình nền cho nút

Visible: có giá trị mặc định là True, dùng để ẩn hiện nút

c Phương thức

Location: di chuyển nút lệnh đến tọa độ X,Y: Location = new point( X, Y)

Hide:Ẩn nút lệnh trên Form

Show: Hiển thị nút lệnh trên Form

Focus: Đặt nút lệnh ở trạng thái được chọn

SetBounds(x,y,w,h): xác định vị trí và kích thước của nút lệnh

Dispose: Xóa vùng nhớ liên quan đến đối tượng được khai báo

Ví dụ: Tạo một biểu mẫu có một ô

nhập liệu với nhãn là họ tên và một nút

lệnh cho phép đưa ra câu chào người dùng

Private Sub bttnOK_Click( ByVal

sender As System.Object, ByVal e As

System.EventArgs) Handles

bttnOK.Click

MsgBox("Chào mừng bạn " &

Trim(txtHoTen.Text) & " đến với

Visual Basic NET")

End Sub

Trang 22

Câu hỏi:

Ba (3) thuộc tính nào của Button được sử dụng nhiều nhất khi thiết kế giao diện?

Sự kiện nào hay được sử dụng nhất?

Cách chèn hình ảnh cho Button?

Phương thức Focus dùng làm gì?

2.5 Ô nhập liệu (Textbox)

a Khái niệm:

Ô nhập liệu là một điều khiển cho phép nhận thông tin

do người dùng nhập vào Đối với ô nhập liệu ta cũng có thể

dùng để hiển thị thông tin, thông tin này được đưa vào tại thời

điểm thiết kế hay thậm chí ở thời điểm thực thi ứng dụng

Còn thao tác nhận thông tin do người dùng nhập vào dĩ nhiên

là được thực hiện tại thời điểm chạy ứng dụng

b Thuộc tính:

Name: Tên điều khiển Textbox

BackColor: Định màu nền cho nút

Font, Fore Color: Quy định kiểu chữ, kích thước, màu hiển thị

Text: Dùng văn bản hiển thị trên Textbox

Wordwrap: giá trị True cho phép văn bản dài tự động xuống dòng

ReadOnly: Giá trị True chỉ có thể xem văn bản mà không được chỉnh sửa

PasswordChar: Ký tự thay thế cho những ký tự được nhập vào Textbox Thường để nhập mật khẩu

CharacterCasing: Normal (mặc định), Upper (tự động đổi thành chữ hoa), Lower (tự động đổi thành chữ thường)

Multiline: Giá trị True cho phép nhập, hiển thị văn bản trên nhiều dòng

Scrollbars: None (mặc định), Horizontal (thanh cuộn ngang) và Vertical (thanh cuộn dọc), both (cả hai thanh cuộn)

BorderStyle: Xác định kiểu đường viền bao quanh Textbox

c Phương thức

AppendText(s as String): Nối thêm chuỗi s vào Textbox

Ví dụ: txtNoiDung.Text = “Tôi tên”

Khi đó txtNoiDung.AppendText(“ Duy Quang, bạn tên gì?”)

Kết quả txtNoiDung sẽ chứa nội dung là “Tôi tên Duy Quang, bạn tên gì?” Clear(): Xóa toàn bộ dữ liệu trong Textbox

Cut(): Di chuyển vùng dữ liệu đang được chọn ở Textbox vào bộ nhớ (Clipboard) Copy(): Sao chép vùng dữ liệu đang được chọn ở Textbox vào bộ nhớ

Paste(): Chép vùng dữ liệu trong bộ nhớ vào Textbox

Paste(s as String): Chép chuỗi s vào Textbox

Undo(): Giống như undo trong Word

Deselectall(): Bỏ chọn dữ liệu trong Textbox

Trang 23

Focus: Phương thức này nhằm mục đích thiết lập cho điều khiển ô nhập liệu nhận được Focus, nghĩa là nó sẵn sàng được tương tác bởi người sử dụng

Select(st as integer, n as integer): Chọn dữ liệu trong Textbox từ vị trí st đến n ký tự SelectAll(): Chọn tất cả dữ liệu trong Textbox

Hide(): Ẩn Textbox trên Form

d Sự kiện:

KeyPress: xảy ra khi người sử dụng chương trình nhấn một phím Đối với điều khiển Textbox, ta thường dùng nó để lọc (filter out) các phím không chấp nhận Sự kiện KeyPress cho ta một mã Ascii, một số có giá trị từ 0 đến 255, của phím vừa nhấn Trong

ví dụ dưới đây, Textbox Text1 sẽ chỉ nhận biết các phím là số (0 - 9), không nhận biết các phím khác:

Private Sub Textbox1_KeyPress( ByVal sender As Object , ByVal e As

System.Windows.Forms.KeyPressEventArgs) Handles Textbox1.KeyPress

If (e.KeyChar < ChrW(48) Or e.KeyChar > ChrW(57)) Then

Private Sub Textbox1_KeyDown( ByVal sender As Object , ByVal e As

System.Windows.Forms.KeyEventArgs) Handles Textbox1.KeyDown

If e.KeyCode >= Keys.F1 And e.KeyCode <= Keys.F12 Then

MsgBox("Bạn vừa nhấn phím chức năng: F" & e.KeyCode - 111)

End If

End Sub

TextChange: Xảy ra khi có sự thay đổi dữ liệu trong textbox

Validating: Xảy ra khi đang chuyển con trỏ sang đối tượng khác

Validated: Giống như Validating nhưng liền sau Validating

GotFocus: Xảy ra khi Textbox được chọn

Enter: Tương tự như GotFocus

Câu hỏi:

Thuộc tính nào được sử dụng nhiều nhất khi thao tác trên Textbox?

Để thiết lập Textbox có nhiều dòng ta sử dụng thuộc tính nào?

Thuộc tính nào quy định khả năng tự động xuống dòng cho Textbox?

Sự kiện gì sẽ phát sinh khi ta nhấn một phím bất kì trong Textbox?

Phương thức nào giúp ta đặt con trỏ vào Textbox để sẵn sàng nhập dữ liệu?

Bài tập:

1 Viết chương trình chỉ cho nhập số vào trong Textbox không nhận các ký tự khác

2 Viết chương trình cho biết phím chức năng vừa được nhấn

3 Viết chương trình tính cộng, trừ, nhân, chia 2 (hai) số Yêu cầu chỉ cho nhập số

Trang 24

2.6 Các thuộc tính, phương thức cơ bản của các Control

a Thuộc tính:

Name: Tên định danh, phân biệt với các Control khác Được sử dụng như đối tượng

của Control trong quá trình viết Code

Font, Fore Color: Quy định kiểu chữ, kích thước, màu hiển thị

Text: Dùng văn bản hiển thị trên chuỗi lên Control

BorderStyle: Xác định kiểu đường viền bao quanh Control

BackColor/BackImage: Màu nền và hình nền của Control

Location: Xác định vị trí Control trên Form

Enable: có giá trị True/False; cho phép hoặc không cho phép tác động lên Control Visible: có giá trị True/False; hiển thị hoặc ẩn Control trên Form

Locked: Khóa không cho phép thay đổi Control trong khi thiết kế

Image: Hình được hiển thị lên Control

Size: Quy định kích thước của Control trên Form

b Phương thức

Focus(): Đặt Control ở trạng thái được chọn

Hide(): Ẩn Control trên Form

Show(): Chuyển Control từ trạng thái ẩn sang hiện

SetBound(x, y, w, h): Định lại vị trí và kích thước của Control

Dispose(): Xóa vùng nhớ liên quan đến đối tượng được khai báo

2.7 Bảng điều khiển (Control Panel)

a Khái niệm:

Là một Control có thể chứa các Control khác

Được sử dụng trong các trường hợp muốn chia nhỏ

Form ra thành nhiều phần để hiện thị Form đẹp và trực

quan

Việc đưa các Control khác vào Panel cũng giống như

thao tác thêm một Control vào trong Form

b Thuộc tính

Bao gồm các thuộc tính chung như đã nêu trong mục

2.6 (không có Text), ngoài ra có các thuộc tính khác như:

AutoScroll: Cho phép xuất hiện thanh cuộn khi Panel

có size nhỏ không thể chứa hết các Control

AutoSize: Tự động co giãn sao cho vừa khít với các

Control trong Panel

c Phương thức và sự kiện

Gồm các phương thức và sự kiện chung nhưng đôi khi người lập trình ít quan tâm đến phương thức và sự kiện của Panel

Trang 25

2.8 Khung (GroupBox)

a Khái niệm:

Là một Control giống với Panel nhưng không có

thuộc tính AutoScroll mà lại có thuộc tính Text

Khung là một điều khiển dùng trong việc bố trí giao

diện của biểu mẫu một cách trong sáng và rõ nét Thông

thường các điều khiển cùng phục vụ cho một công việc

nào đó sẽ được đặt trong một khung nhằm làm nổi bật vai

trò của chúng

Khi chúng ta tạo mới một khung để chứa các điều

khiển khác, ta có hai cách thực hiện:

- Tạo khung chứa trước, sau đó đưa các điều khiển

vào trong khung chứa Đây là cách đơn giản nhất

- Tạo khung chứa sau khi đã tạo mới các điều khiển,

khi đó khung chứa sẽ che mất các điều khiển, vì vậy ta cần phải đưa khung chứa ra sau các điều khiển bằng cách nhấp chuột phải và chọn Send to Back Nhưng đối với cách này, các điều khiển khác không nằm trên khung chứa Do vậy ta có thể giải quyết bằng cách cắt (Cut) các điều khiển này đi, sau đó dán (Paste) vào trong khung chứa

Font, Fore Color: Quy định kiểu chữ, kích thước, màu hiển thị

BackColor: Quy định màu nền của khung trong trường hợp không trong suốt Chọn backcolor là Transparent trong tab Web của cửa sổ chọn màu để có màu nền giống với màu đối tượng hoặc đang chứa khung

BackgroundImage: Chọn hình nền cho khung

Enable: có giá trị mặc định là True, cho phép hoặc không cho phép kích hoạt vào khung

Visible: có giá trị mặc định là True, dùng để ẩn hiện khung

TabIndex: Số thứ tự của đối tượng trên Form Ta có thể nhấn phím Tab trên bàn phím để chuyến đổi qua lại giữa các đối tượng bằng chỉ số Tabindex Chỉ số nào được tự động tạo ra khi ta thêm một đối tượng vào Form

Trang 26

Bài tập:

1 Thiết kế chương trình đơn giản như hình dưới

2 Viết chương trình thực hiện phép tính như hình sau:

Trang 27

Chương 3: LẬP TRÌNH CẤU TRÚC TRONG VISUAL BASIC

Mục tiêu:

 Chương này giới thiệu về các cấu trúc lập trình trong VB; đây là các cấu trúc cốt lõi để xây dựng nên một chương trình VB

Kết thúc chương này, sinh viên phải nắm bắt được các vấn đề sau:

 Sử dụng môi trường lập trình VB để viết mã lệnh

 Các kiểu dữ liệu trong VB

 Cách khai báo hằng, biến trong VB

 Biểu thức trong VB

 Các câu lệnh đơn cũng như các câu lệnh có cấu trúc

 Chương trình con trong VB

 Bẫy lỗi trong VB

Kiến thức có liên quan:

 Cách sử dụng môi trường phát triển của VB

3.1 Môi trường lập trình

a Soạn thảo chương trình:

Với một ứng dụng được viết để thực thi trên Windows và viết bằng Visual Basic NET thông thường có 2 môi trường lập trình:

Console: Người dùng tương tác với ứng dụng qua giao diện console (dòng lệnh)

Trang 28

Windows Form: Người dùng tương tác với ứng dụng qua giao diện Windows Form (cửa sổ) Trên Windows Form bao gồm các đối tượng điều khiển và các sự kiện, hỗ trợ thuận tiện cho người dùng sử dụng ứng dung

Trang 29

Trong lập trình Visual Basic NET, cửa sổ mã lệnh (Code) cho phép soạn thảo chương trình Cửa sổ này có một số chức năng nổi bật:

Đánh dấu (Bookmarks): Chức năng này cho phép đánh dấu các dòng lệnh của chương trình trong cửa sổ mã lệnh để dễ dàng xem lại về sau này Để bật tắt khả năng này, chọn Bookmarks từ menu Edit, hoặc chọn từ thanh công cụ Edit

Các phím tắt trong cửa sổ mã lệnh:

Xem cửa sổ Code F7

Xem cửa sổ Object Browser F2

Chuyển đến thủ tục kế tiếp CTRL+DOWN ARROW

Chuyển đến thủ tục trước đó CTRL+UP ARROW

Xem định nghĩa SHIFT+F2

Cuộn xuống một màn hình CTRL+PAGE DOWN

Cuộn lên một màn hình CTRL+PAGE UP

Nhảy về vị trí trước đó CTRL+SHIFT+F2

Trở về đầu của mô-đun CTRL+HOME

Đến cuối mô-đun CTRL+END

Trang 30

b Các chức năng tự động:

Tự động kiểm tra cú pháp (Auto Syntax Check):

Nếu chức năng này không được bật thì khi ta viết một dòng mã có chứa lỗi, VB chỉ hiển thị dòng chương trình sai với màu đỏ nhưng không kèm theo chú thích gì và tất nhiên ta có thể viết tiếp các dòng lệnh khác Còn khi chức năng này được bật, VB sẽ cho

ta biết một số thông tin về lỗi và hiển thị con trỏ ngay dòng chương trình lỗi để chờ ta sửa

Gợi nhớ mã lệnh (Code):

Khả năng Auto List Members: Tự động hiển thị danh sách các thuộc tính và phương thức của 1 điều khiển hay một đối tượng khi ta gõ vào tên của chúng Chọn thuộc tính hay phương thức cần thao tác và nhấn phím Tab hoặc Space để đưa nó vào chương trình

Mô tả

Boolean 2 Gồm 2 giá trị: TRUE & FALSE

Byte 1 Các giá trị số nguyên từ 0 đến 255

Short 2 Các giá trị số nguyên từ -32.678 đến 32.767

Integer 4 Các giá trị số nguyên từ -2.147.483.648 đến

2.147.483.647 Long 8 Các giá trị số nguyên từ -9.223.372.036.854.775.808 đến

9.223.372.036.854.775.807 Kiểu dữ liệu này thường được gọi là số nguyên dài

Single 4 Các giá trị số thực từ -3,402823E+38 đến 1,401298E-45

cho số âm

1,401298E-45 đến 3,402823E+38 cho các số dương

Double 8 Các giá trị số thực từ -1.79769313486232E+308 đến

1.79769313486232E+308 Kiểu dữ liệu này được gọi là

độ chính xác kép

Trang 31

Char 2 Lưu trữ một ký tự

String Lưu trữ các chuỗi văn bản, lên đến 2 tỉ ký tự

Date 4 Dữ liệu kiểu ngày tháng, có giá trị từ 01/01/100 đến

Const <tên hằng> [As <kiểu dữ liệu>] = <biểu thức>

Trong đó, tên hằng được đặt giống theo quy tắc đặt tên của điều khiển

Biến có 2 đăc điểm:

 Mỗi biến có một tên

 Mỗi biến có thể chứa duy nhất một loại dữ liệu

b Khai báo

[Public|Private|Static|Dim] <tên biến> [ As <kiểu dữ liệu> ]

Trong đó, tên biến: là một tên được đặt giống quy tắc đặt tên điều khiển Nếu cần khai báo nhiều biến trên một dòng thì mỗi khai báo cách nhau dấu phẩy (,)

Nếu khai báo biến không xác định kiểu dữ liệu thì biến đó có kiểu Variant

Khai báo ngầm: Đây là hình thức không cần phải khai báo một biến trước khi sử dụng Cách dùng này có vẻ thuận tiện nhưng sẽ gây một số sai sót, chẳng hạn khi ta đánh nhầm tên biến, VB sẽ hiểu đó là một biến mới dẫn đến kết quả chương trình sai mà rất khó phát hiện

Ví dụ:

Dim Num As Long, a As Single

Dim Age As Integer = 18

Dim tmp as String = “Nhập môn lập trình VB NET”

Khai báo tường minh: Để tránh rắc rối như đã nêu ở trên, ta nên quy định rằng Visual Basic sẽ báo lỗi khi gặp biến chưa được khai báo bằng dòng lệnh

Trang 32

Một số nguyên tắc đặt tên cho hằng và biến

 Độ dài từ 1 đến 256 ký tự

 Bắt đầu bằng ký tự, không phân biệt chữ hoa hay thường

 Không sử dụng ký tự đặc biệt khi đặt tên (!, @, #, $, %, ^, &, *, …)

 Không được trùng với từ khóa

3.5 Biểu thức

a Khái niệm

Toán tử hay phép toán (Operator): là từ hay ký hiệu nhằm thực hiện phép tính và xử

lý dữ liệu

Toán hạng: là giá trị dữ liệu (biến, hằng…)

Biểu thức: là tập hợp các toán hạng và các toán tử kết hợp lại với nhau theo quy tắc nhất định để tính toán ra một giá trị nào đó

- Phép lấy số đối Kiểu số (Integer, Single…) Như kiểu đối số + Phép cộng hai số Kiểu số (Integer, Single…) Như kiểu đối số

- Phép trừ hai số Kiểu số (Integer, Single…) Như kiểu đối số

* Phép nhân hai số Kiểu số (Integer, Single…) Như kiểu đối số / Phép chia hai số Kiểu số (Integer, Single…) Single hay

Double

\ Phép chia lấy phần

Mod Phép chia lấy phần dư Integer, Long Integer, Long

^ Tính lũy thừa Kiểu số (Integer, Single…) Như kiểu đối số

Các phép toán quan hệ: Đây là các phép toán mà giá trị trả về của chúng là một giá

trị kiểu Boolean (TRUE hay FALSE)

Trang 33

Các phép toán Logic: là các phép toán tác động trên kiểu Boolean và cho kết quả là

kiểu Boolean Các phép toán này bao gồm AND (và), OR (hoặc), NOT (phủ định) Sau đây là bảng giá trị của các phép toán:

X Y X AND Y X OR Y NOT X TRUE TRUE TRUE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE FALSE TRUE

3.6 Các hàm xây dựng sẵn:

a Hàm chuyển đổi:

Cbool Chuyển đổi thành một giá trị Boolean Tất cả các giá trị là False hay 0

sẽ được chuyển thành False; Các giá trị khác sẽ chuyển thành True Cbyte Chuyển thành một byte Tất cả các giá trị lớn hơn 255, hay phần thập

phân sẽ bị mất

Cchar Chuyển thành một ký tự đơn Nếu giá trị lớn hơn 65.535 thì nó sẽ bị

mất Nếu chuyển một chuỗi, thì chỉ có ký tự đầu tiên được chuyển

Cdate Chuyển thành một ngày

CDbl Chuyển thành giá trị Double

Cint Chuyển thành một số Interger Phần thập phân được làm tròn

CLng Chuyển thành một số Long Phần thập phân được làm tròn

CSht Chuyển thành một số Short Phần thập phân được làm tròn

CStr Chuyển thành một chuỗi Nếu giá trị là Date thì kết quả là chuỗi định

b Hàm toán học

Các hàm này được cung cấp trong lớp System.Math Để sử dụng được lớp này ta phải khai báo phía trên đầu của cửa sổ Code Editor, bên trên phát biểu Public Class TênForm dòng lệnh sau:

Imports System.Math

ABS(n) : Trả về trị tuyệt đối của n

Atan(n) : Trả về Artang của n (n tính bằng radian)

Cos(n) : Trả về cos của góc n (n tính bằng radian)

Trang 34

Sin(n) : Trả về sin của góc n (n tính bằng radian)

Tan(n) : Trả về tan của góc n (n tính bằng radian)

Exp(n) : Trả về e mũ n

Sign(n) : Trả về -1 nếu n<0, 1 nếu n>0 và 0 nếu n=0

Sqrt(n) : Trả về căn bậc 2 của n

c Hàm xử lý chuỗi:

Len(S) : Trả về độ dài của chuỗi S N = len(“Hello”) => N =5

Chr(N) : Trả về ký tự có giá trị ASCII hay Unicode là N S = chr(65) => S=“A” Asc(Ch) : Trả về giá trị ASCII hay Unicode của ký tự Ch N=Asc(“A”) => N=65 Lcase(S) : Chuyển tất cả các ký tự trong chuỗi thành chữ thường

Ucase(S) : Chuyển tất cá các ký tự trong chuỗi thành chữ in hoa

Ltrim(S) : Bỏ tất cả các khoản trắng đứng trước chuỗi

S = Ltrim(“ Hello ”) => S = “Hello ” Rtrim(S) : Bỏ tất cả các khoản trắng đứng sau chuỗi

S = Rtrim(“ Hello ”) => S = “ Hello”

Trim(S) : Bỏ tất cả các khoản trắng đứng trước và sau chuỗi

S = Trim(“ Hello ”) => S = “Hello”

d Các hàm hữu dụng khác:

IsArray : Trả về True nếu tham số truyền vào là một mảng

N = IsArray(a) => N = True nếu a là mảng

IsDate : Trả về True nếu thám số truyền vào là một ngày

IsNumeric : Trả về True nếu tham số truyền vào là một số

IsObject : Trả vể True nếu tham số truyền vào là một kiểu đối tượng

TypeName : Trả về tên kiểu dữ liệu của tham số

Now : Trả về ngày giờ hiện tại

Today : Trả về ngày hiện tại với thời gian là 0:00:00 am

3.7 Câu lệnh

Một câu lệnh (statement) xác định một công việc mà chương trình phải thực hiện để

xử lý dữ liệu đã được mô tả và khai báo Các câu lệnh được ngăn cách với nhau bởi ký tự xuống dòng Ký tự xuống dòng báo hiệu kết thúc một câu lệnh

a Lệnh gán

Cú pháp:

<Tên biến> = <Biểu thức>

Ví dụ:

Giả sử ta có khai báo sau:

Dim TodayTemp As Single, MinAge As Integer

Dim Sales, NewSales As Single, FullName As String

Trang 35

Các lệnh sau gán giá trị cho các biến trên:

Nhóm lệnh 2

… ElseIf <điều kiện n> Then

Nhóm lệnh n [Else

Nhóm lệnh n+1]

End If

Trang 36

Lưu đồ cú pháp:

Trong đó, <điều kiện>: biểu thức mà kết quả trả về kiểu Boolean

Ý nghĩa câu lệnh: Nhóm lệnh hay lệnh sẽ được thi hành nếu như điều kiện là đúng Còn nếu như điều kiện là sai thì VB sẽ kiểm tra các điều kiện, nếu điều kiện nào đúng thì khối lệnh tương ứng sẽ được thi hành Ngược lại nếu không có điều kiện nào đúng thì khối lệnh sau từ khóa Else sẽ được thi hành

Ví dụ: Tính số lớn nhất trong hai số như hình dưới

Hướng dẫn code:

Private Sub bttnTim_Click( ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles bttnTim.Click

If Not IsNumeric(txtSo1.Text) Then

If CDbl (txtSo1.Text) >= CDbl (txtSo2.Text) Then

txtKQ.Text = "Số lớn nhất là: " & txtSo1.Text

Else

txtKQ.Text = "Số lớn nhất là: " & txtSo2.Text

End If

End Sub

Private Sub bttnXoa_Click( ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles bttnXoa.Click

Trang 37

txtKQ.Clear()

End Sub

Private Sub bttnDong_Click( ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles bttnDong.Click

End

End Sub

Bài tập: Viết chương trình Giải PT bậc 1 và Giải PT bậc 2

Function GiaiPhuongTrinhbac2( ByVal soA As Integer , ByVal soB As Integer ,

ByVal soC As Integer ) As String

Return "PT vô nghiệm delta = " & delta & " < 0"

ElseIf delta = 0 Then

Return "PT có nghiệm kép x1 = x2 = " & Round((-soB) / (2 * soA), 2)

Else

Dim x1 = ((-soB) + Sqrt(delta)) / (2 * soA)

Dim x2 = ((-soB) - Sqrt(delta)) / (2 * soA)

Return "PT có 2 nghiệm x1 = " & Round(x1, 2) & " và x2 = " & Round(x2, 2)

End If

End If

End Function

c Lệnh lựa chọn Select Case

Trong trường hợp có quá nhiều các điều kiện cần phải kiểm tra, nếu ta dùng cấu trúc

rẽ nhánh If…Then thì đoạn lệnh không được trong sáng, khó kiểm tra, sửa đổi khi có sai sót Ngược lại với cấu trúc Select…Case, biểu thức điều kiện sẽ được tính toán một lần vào đầu cấu trúc, sau đó VB sẽ so sánh kết quả với từng trường hợp (Case) Nếu bằng nó thi hành khối lệnh trong trường hợp (Case) đó

Select Case <biểu thức kiểm tra>

Case <Danh sách kết quả biểu thức 1>

Trang 38

[Khối lệnh 1]

Case <Danh sách kết quả biểu thức 2>

[Khối lệnh 2]

[Case Else

[Khối lệnh n]]

End Select

Mỗi danh sách kết quả biểu thức sẽ chứa một hoặc nhiều giá trị Trong trường hợp

có nhiều giá trị thì mỗi giá trị cách nhau bởi dấu phẩy (,) Nếu có nhiều Case cùng thỏa điều kiện thì khối lệnh của Case đầu tiên sẽ được thực hiện

Lưu ý: Trong ví dụ trên không thể viết Case Tuoi < 18

Ví dụ: Tính số ngày trong tháng của năm

Select Case Thang

Trang 39

Bài tập: Viết chương trình nhập vào một năm dương lịch và đổi thành năm âm lịch

Private Sub bttnDoi_Click( ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles bttnDoi.Click

Dim can, chi As Byte

Dim amlich As String = ""

can = CInt (txtDL.Text) Mod 10

chi = CInt (txtDL.Text) Mod 12

Select Case can

Trang 40

Private Sub bttnThoat_Click( ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles bttnThoat.Click

End

End Sub

d Cấu trúc lặp

Các cấu trúc lặp cho phép thi hành một khối lệnh nào đó nhiều lần

Lặp không biết trước số lần lặp

Do Loop: Đây là cấu trúc lặp không xác định trước số lần lặp, trong đó, số lần lặp

sẽ được quyết định bởi một biểu thức điều kiện Biểu thức điều kiện phải có kết quả là True hoặc False Cấu trúc này có 4 kiểu:

Kiểu 1:

Do While <điều kiện>

<khối lệnh>

Loop Khối lệnh sẽ được thi hành đến khi nào điều kiện không còn đúng nữa Do biểu thức điều kiện được kiểm tra trước khi thi hành khối lệnh, do đó có thể khối lệnh sẽ không được thực hiện một lần nào cả

Kiểu 2:

Do

<khối lệnh>

Loop While <điều kiện>

Khối lệnh sẽ được thực hiện, sau đó biểu thức điều kiện được kiểm tra, nếu điều kiện còn đúng thì, khối lệnh sẽ được thực hiện tiếp tục Do biểu thức điều kiện được kiểm tra sau, do đó khối lệnh sẽ được thực hiện ít nhất một lần

Kiểu 3:

Do Until <điều kiện>

<khối lệnh>

Loop Cũng tương tự như cấu trúc Do While Loop nhưng khác biệt ở chỗ là khối lệnh sẽ được thi hành khi điều kiện còn sai

Kiểu 4:

Do

<khối lệnh>

Loop Until <điều kiện>

Khối lệnh được thi hành trong khi điều kiện còn sai và có ít nhất là một lần lặp

Ngày đăng: 05/12/2020, 06:51

TỪ KHÓA LIÊN QUAN

w