Giáo trình lập trình windows (VB.net) có nội dung gồm 4 bài trình bày về: giới thiệu Microsoft Visual Studio .NET; nền tảng của ngôn ngữ VB.NET; lập trình hướng đối tượng trong Visual Basic .NET; làm việc với dự án có nhiều form;... Mời các bạn cùng tham khảo chi tiết nội dung giáo trình!
Trang 1M C L C Ụ Ụ
M C L C 1 Ụ Ụ
BÀI 1. GI I THI U MICROSOFT VISUAL STUDIO .NET 6 Ớ Ệ
1. Gi i thi u Microsoft .NET 2010 6 ớ ệ
1.1. Tình hình trước khi Visual Studio.NET ra đ i 6ờ
1.2. S ra đ i c a Visual Studio.NET 7ự ờ ủ
BÀI 2. N N T NG C A NGÔN NG VB.NET 23 Ề Ả Ủ Ữ
1. Các ki u d li u 23 ể ữ ệ
Trang 25.5 C u trúc l p 33ấ ặ
5.5.1 Lặp không biết trước số lần lặp 33
5.5.1.1 Câu lệnh Do Loop 33
5.5.1.2 Câu lệnh While End While 34
5.5.2 Lặp biết trước số lần lặp với câu lệnh For…Next 34
2.3 Constructor (Th t c kh i t o) 53ủ ụ ở ạ
2.4 Destructors(Th t c kh i h y) 54ủ ụ ở ủ
2.5 Phương th c (Methods) 55ứ
2.6 Trường (Fields) và thu c tính (Properties) 55ộ
2.7 Khai báo s ki n (Event) 56ự ệ
2.8 T khóa Me, MyBase, MyClass 57ừ
2.8.1 Từ khóa Me 57
2.8.2 Từ khóa MyBase 58
Trang 33.1.2 Business Logic Layer 63
3.1.3 Data Access Layer 64
1.2.3 Đặt tên và thuộc tính cho menu 74
1.3 Vi t l nh cho s ki n c a menu 75ế ệ ự ệ ủ
2. Thi t k các d ng form 76 ế ế ạ
2.1 Form cha 76
2.2 Form con 77
3. S d ng các đi u khi n c b n 80 ử ụ ề ể ơ ả
3.1 M i quan h gi a thu c tính, phố ệ ữ ộ ương th c và s ki n 80ứ ự ệ
3.2 Thu c tính, phộ ương th c, s ki n c a m t s đi u khi n c b n 80ứ ự ệ ủ ộ ố ề ể ơ ả
Trang 43.3 Các h p tho i thông d ng 88ộ ạ ụ
3.3.1 Hộp thoại mở tập tin (OpenFileDialog) 88
3.3.2 Hộp thoại lưu tập tin (SaveFileDialog) 89
4.2.1 Làm việc với các biến Public (biến toàn cục) 94
4.2.2 Biến Public ở phạm vi form 96
5.1.1 Thuật ngữ về cơ sở dữ liệu (CSDL) 103
5.1.2 Làm việc với cơ sở dữ liệu Access 104
5.1.3 Tạo bộ điều phối dữ liệu Data Adapter 107
5.1.4 Sử dụng đối tượng điều khiển OleDbDataAdapter 107 5.1.5 Làm việc với DataSet 111
5.2 S d ng các đi u khi n ràng bu c d li u 113ử ụ ề ể ộ ữ ệ
5.3 T o các đi u khi n duy t xem d li u 116ạ ề ể ệ ữ ệ
5.4. Hi n th v trí c a b n ghi hi n hành 118ể ị ị ủ ả ệ
5.5 Trình di n d li u s d ng đi u khi n DataGrid 120ễ ữ ệ ử ụ ề ể
5.5.1 Sử dụng DataGrid để hiển thị dữ liệu trong bảng: 120 5.5.2 Định dạng các ô lưới trong DataGrid 127
5.5.3 Cập nhật cơ sở dữ liệu trở lại bảng 128
6. Bài t p 129 ậ
Tài li u tham kh o: 132 ệ ả
Trang 6BÀI 1. GI I THI U MICROSOFT VISUAL STUDIO .NET Ớ Ệ
do không t ngươ thích về m tặ l iợ ích c aủ các công ty ph nầ mềm l nớ đã làm nhả
hư ngở đ nế công vi cệ c aủ những kỹ s xư ây dựng ph nầ mềm
Trong gi iớ phát tri nể ứng d ngụ trên Internet ta có thể sử d ngụ các ngôn ngữ Java, PHP, ASP… Khi Java m iớ đượ Sun Corporation gi ic ớ thiệu nó đã có một sức mạnh đáng kể và hư ngớ t iớ vi cệ chạy trên nhi uề hệ đi uề hành khác nhau,
đ cộ l pậ v iớ các bộ xử lý. Đ cặ bi t Javaệ r tấ thích h p cho vợ i cệ vi tế các ứng d ngụ trên Internet. Tuy nhiên, Java l iạ có h nạ chế v ề m tặ t cố độ và trên thực tế v nẫ chưa thịnh hành
Để làm giảm khả năng nhả hư ngở c aủ Java, bên hãng Microsoft cũng cung
c pấ ngôn ng ASPữ chuyên dùng để vi tế các ứng d ngụ trên Web. Trong các trang ASP vừa chứa th HTMLẻ vừa chứa các đo nạ script (VBScript, JavaScript). Trong quá trình xử lý m tộ trang ASP, n uế là thẻ HTML thì sẽ đ cượ gửi th ngẳ t iớ trình duyệt, còn nếu là các đo nạ script thì s ẽ đ cượ chuy n thànhể các dòng HTML
r iồ gửi đi. Khi nhà l pậ trình mu n đóngố gói và sử dụng l iạ m tộ s chố ức năng nào
đó, thì họ dịch các đoạn ch ngươ trình thành ActiveX và đưa nó vào Web Server. Tuy nhiên, vì lý do b oả m tậ nên các Admin c aủ các trang Web thườ r tng ấ dè d tặ khi cài ActiveX l ạ trên máy của h ,ọ ngoài ra vi cệ tháo gỡ các phiên b nả c a Aủ ctiveX này cũng là công vi cệ r tấ khó khăn
Còn trong gi iớ phát triển ứng d ngụ trên Windows ta có thể vi tế ứng d ngụ b ngằ Visual C++, Delphi, Visual Basic… đây là m tộ số công cụ phổ bi nế và mạnh.
Trang 7Trong đó Visual C++ là một ngôn ngữ r tấ mạnh nh ngư cũng r tấ khó sử d ng.ụ Visual Basic thì đ nơ gi nả dễ h c,ọ d dùngễ nh tấ nên r tấ thông d ngụ nh ngư h nạ chế là Visual Basic không ph iả ngôn ngữ hướng đ iố t ngượ và không h trỗ ợ khả năng phát tri nể thu tậ toán.
Tóm l iạ trong gi iớ l pậ trình theo Microsoft thì vi cệ l pậ trình trên desktop cho đến l pậ trình hệ phân tán hay trên web là những mảng đ cộ l p.ậ
K tế quả là năm 2001 Visual Studio.Net 2001 ra đ iờ đánh d uấ cho một môi
tr ngườ l pậ trình trên n nề .NET Framework 1.0 tiên ti nế m i.ớ
Năm 2003, sau 2 năm .NET Framework nâng c pấ thêm m tộ bậc v iớ phiên b nả 1.1 v iớ đ c điặ ểm ngoài các ch ngươ trình Windows truyền th ngố – là các t pệ tin .exe giờ đây Windows còn t nồ t iạ những ch ngươ trình khác – những ch ngươ trình chạy trên nền NET. Mu nố chạy ch ngươ trình NET ta chỉ c nầ cài NET Framework là
đ ủ M tộ điểm lý thú và cũng là đi u ề mong đ iợ c aủ t tấ cả lập trình viên, từ phiên
b nả Windows 2003 .NET Framework đ cượ cài đ tặ như m tộ ph nầ mặc đ nhị c aủ Windows. Song song đó, môi tr ngườ phát tri nể Visual Studio .NET 2001 đ cượ nâng c pấ thành Visual Studio .NET 2003 cho phép vi tế và chạy các ứng d ngụ trên
n nề .NET Framework 1.1
Cu iố năm 2005, Visual Studio 2005 v iớ n n ề NET Framework 2.0 m nhạ mẽ và
v tượ trội hơn so v iớ n nề NET Framwork 1.1 trướ đó. Ngay sau đó Microsoft ccông bố phiên b n ả Windows Vista, và toàn bộ Windows là .NET, t tấ cả các hàm API lõi trong những phiên b n ả Windows trướ đây đều đã đc ượ thay thế bằng các chàm hay thư vi nệ .NET. Microsoft đã vi tế l iạ hoàn toàn lõi API, không còn một l pớ API nào nữa
Trang 81.3 T ng ổ quan v Visual ề Studio.NET
Visual Studio.NET gồm 2 ph n:ầ Framework và Integrated Development Environment– IDE, cho phép l pậ trình viên khi xây dựng các ứng d ngụ có thể lựa chọn sử d ngụ nhi uề ngôn ng l pữ ậ trình khác nhau nh Viư sual C++.NET, Visual C#.NET, Visual J#.NET, Visual Basic.NET… trong cùng m tộ môi trườ phát ngtri nể IDE th ngố nh tấ trên ki nế trúc NET Framework
Framework là thành ph nầ quan tr ngọ nh t,ấ là c tố lõi và tinh hoa c aủ môi
trường .NET, Framework giúp chúng ta biên d chị và thực thi các ứng dụng NET (c uấ trúc c a Frủ amework chúng ta s tẽ ìm hiểu ở các ch ngươ sau c aủ giáo trình).IDE cung c pấ m tộ môi tr ngườ phát tri nể trực quan, giúp các l pậ trình viên có thể dễ dàng và nhanh chóng xây dựng giao di nệ cũng như vi tế mã l nhệ cho các ứng
d ngụ dựa trên n nề tảng .NET. N uế không có IDE chúng ta cũng có thể dùng m tộ trình so nạ thảo văn b nả b tấ kỳ, ví dụ như Notepad để viết mã lệnh và sử d ngụ command line để biên d chị và thực thi ứng d ng.ụ Tuy nhiên vi cệ này m tấ r tấ nhi uề th iờ gian, t tố nh tấ là chúng ta nên dùng IDE để phát tri nể các ứng dụng, và
đó cũng là cách dễ sử d ngụ nh t.ấ
Ngoài ra trong Visual Studio.NET thì l pậ trình Winform và Webform là t ngươ
tự, ví dụ c Visualả C#.NET lẫn Visual Basic.NET đ uề hỗ trợ khả năng l pậ trình trên Win và Web…
1.4 Trình biên d ch và MSIL ị
Microsoft Intermediate Language (MSIL) hay Common Intermediate Language (CIL) là m t ngôn ng trung gian độ ữ ượ ạc t o ra sau quá trình biên d ch t các lo iị ừ ạ ngôn ng khác trong .Net nh C#, C++, VB.Net, J#, …ữ ư
T t c mã ngu n .NET đ u đấ ả ồ ề ược biên d ch thành MSIL. Sau đó MSIL s đị ẽ ượ cchuy n thành mã máy khi ph n m m để ầ ề ượ cài đ tc ặ ho cặ khi ch y ạ (runtime) b iở trình biên d ch JIT (JustInTime).ị
2. Kh i đ ng Visual Basic.NET 2010 và giao di nở ộ ệ
Đ k ể h iở động Visual C# 2010 và giao diện: Vào Start/Programs/Microsoft Visual Studio 2010/Microsoft Visual Studio 2010, xuất hi nệ cửa sổ Start Page.
Trang 9Hình 1. C a s Start Pageử ổ+ New Project: T oạ đồ án m i.ớ
+ Open Project: Mở các đồ án có s n.ẵ
+ Recent Projects: Danh sách các đồ án g nầ đây nh t.ấ
Sau đó kích ch nọ m cụ New Project ho cặ vào File/New/Project ho cặ bấm phím
t tắ Ctrl+Shift+N s xu tẽ ấ hi nệ cửa sổ New Project.
Trang 11Hình 4. Môi trường phát tri n tích h p IDEể ợTitle Bar: Thanh tiêu đề chứa tên đồ án.
Menu Bar: Thanh Menu chứa đầy đủ các công cụ cần để phát tri n,ể thực thi
và cài đặt
ứng d ng…ụ
File: cho phép mở, thêm m iớ và l uư trữ đồ án…
Edit: gồm các thao tác hỗ trợ vi cệ so nạ th oả mã l nhệ nh :ư copy, c t,ắ dán
View: cho phép hi nể thị các công cụ hỗ trợ ng iườ dùng trong quá trình xây dựng đ ánồ nh :ư
Trang 12Debug: cho phép chạy và gỡ r iố ch ngươ trình
Data: cho phép thêm m iớ và hi nể thị cơ sở d li uữ ệ c aủ đồ án
Tools: cung c p ấ các công cụ cho phép kết n iố t iớ các thi tế bị ngoại vi như Pocket PC, Smartphone… ho cặ kết n iố tới các hệ qu nả trị cơ sở dữ li u ệ cũng như
k tế n iố t iớ máy chủ server…
Toolbar: thanh công cụ g mồ một t pậ h pợ các nút l nh,ệ m i nútỗ l nh cệ hứa m tộ biểu tượng icons và có chức năng t ngươ đ ngươ v iớ chức năng c aủ m tộ m cụ lựa chọn trong thanh menu. Thanh công cụ r tấ hữu ích và trực quan, giúp ng iườ dùng dễ dàng và nhanh chóng thực hiện một chức năng mong mu nố chỉ thông qua m tộ cái kích chu t.ộ
Visual Basic 2010 có tới 39 thanh công cụ khác nhau nh :ư Standard, Formatting, Debug, Build Ví dụ hình nhả thanh công cụ Standard:
Hình 5. Thanh công c Standardụ
Để g iọ các thanh công cụ ta vào View/Toolbars khi đó sẽ xu tấ hi nệ danh sách t tấ cả các thanh công c ụ Mu nố ẩn/hi nệ thanh công cụ nào ta kích ch nọ t iạ dòng chứa tên thanh công cụ đó
Toolbox: là h pộ công cụ chứa các đi uề khiển – controls đượ đ tc ặ lên Form khi thi tế k giaoế di nệ ng iườ dùng
Để hi nể thị h pộ công cụ ta thực hi nệ m tộ trong các cách sau:
Vào View/Toolbox
Bấm tổ h pợ phím Ctrl+W+X
Kích chu tộ t iạ bi uể t ngượ Toolbox trên thanh công cụ Standard
Hình 6. H p công c Toolboxộ ụ
Trang 13M cặ đ nhị h p côngộ cụ đ cượ chia thành 11 tab khác nhau nh :ư All Windows Forms, Common Controls
Ta có thể thêm m i,ớ loại b ,ỏ đ iổ tên các tab b ngằ cách kích chu tộ ph iả t iạ vị trí b tấ kỳ trên tab, xu tấ hi nệ m tộ menu ngữ c nhả cho phép lựa ch nọ các thao tác cần thực hi n.ệ
Hình 7. Các ch c năng làm vi c v i tab trong Toolboxứ ệ ớTrong m iỗ tab c aủ hộp Toolbox chứa danh sách các lo iạ đi uề khi nể khác nhau, các điều khi nể này có thể thêm m i,ớ lo iạ b ,ỏ thay đ iổ vị trí… Kích chuột
ph iả tại một đi uề khi nể b t ấ kỳ trên tab, xu tấ hiện một menu ngữ c nhả cho phép lựa chọn các thao tác c nầ thực hi n.ệ
Ví dụ đ thể êm mới m t độ i uề khi nể vào trong tab Data, ta kích chu tộ phải t iạ vị trí b tấ kỳ trên tab Data, ch nọ Choose Items
Trang 14Hình 8. Các ch c năng làm vi c v i t ng đi u khi n trong tabứ ệ ớ ừ ề ể
K t quế ả sẽ xu t hi n cấ ệ ửa sổ Choose Toolbox Items, kích ch nọ các đi u khề i nể mong mu nố r i bồ ấm OK đ k tể ế thúc
Hình 9. C a s Choose Toolbox Itemsử ổForm Designer: cửa sổ thi tế kế dùng để thi tế kế giao diện cho ch ngươ trình,
m iỗ dự án có thể có m tộ ho cặ nhiều Form
Trang 15Hình 10. C a s Form Desigherử ổSolution Explorer: cửa sổ gi iả pháp đây là ph nầ cửa sổ giúp ta qu nả lý t tấ cả các tài nguyên và t pậ tin dự án.
Solution Explorer đ cượ t chổ ức thành m tộ c u trúcấ cây bao gồm những m cụ khác nhau, nh : danhư sách các Form của đồ án, danh sách các l pớ Class, danh sách các tài nguyên cũng như danh sách cơ sở dữ liệu…
Để hi nể thị cửa sổ Solution Explorer ta thực hi nệ m tộ trong các cách sau:
Vào View/Solution Explorer
Bấm tổ h pợ phím Ctrl+W+S
Kích chu tộ t iạ bi uể t ngượ Solution
Hình 11. C a s Solution Explorerử ổTrong cửa s Solutionổ Explorer có hai thành phần hay dùng là View Code và View Designer.
View Code View Designer
Trang 16View Code: có tác dụng hi nể thị cửa s ổ so nạ thảo mã lệnh cho Form đang đ cượ
ch n.ọ Ngoài ra, để hi nể thị cửa sổ so nạ th oả mã l nhệ ta còn có m tộ số cách khác như sau:
Vào View/Designer
Bấm phím t tắ Shift+F7.
Properties Window: cửa sổ này li tệ kê t tấ cả các thu cộ tính, sự ki nệ c aủ các
đi uề khiển trong form
Trang 17Mu nố hiển thị thu cộ tính c aủ đ iố tượ nào ta kích chu tng ộ ch nọ đ iố tượ đó ngtrong cửa s thi tổ ế kế giao di n, ho cệ ặ ch n tênọ đ iố t ngượ trong danh sách thả xuống
Bây gi đ làm quen v i giao di n, chúng ta t o ng d ng đ u tiên. Trong ngờ ể ớ ệ ạ ứ ụ ầ ứ
d ng này có s d ng các đi u khi n c b n nh t là Label, TextBox và Button đụ ử ụ ề ể ơ ả ấ ể thi t k form nh p vào hai s nguyên, tính t ng c a hai s và hi n k t qu ế ế ậ ố ổ ủ ố ệ ế ả
Trang 18Hình 14. Giao di n form c ng hai sệ ộ ố
Bước 1: Đ t tên cho các đi u khi nặ ề ể
Sau khi t o m t đ án m i nh ph n trên, thạ ộ ề ớ ư ầ ay đ iổ thu c tínhộ c aủ form Form1.vb và thay đ iổ thu cộ tính c aủ các đi uề khiển trên form như sau:
Điều khiển Thu cộ tính Giá trị
Form1.vb
StartPosition CenterScreenText C ng hai sộ ốLabel1 Text Nh p s th nh t:ậ ố ứ ấLabel2 Text Nh p s th hai:ậ ố ứ
Label4 NameText lblKQ0
Text Tính t ngổ
Bước 2: Vi t l nhế ệ
Nh p đôi chu t vào nút l nh btnTong và vi t đo n l nh sau:ắ ộ ệ ế ạ ệ
Private Sub btnTong_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnTong.Click
Dim tong As Integer = Convert.ToInt32(txtSo1.Text) +
Convert.ToInt32(txtSo2.Text)
lblKQ.Text = tong.ToString()
End Sub
Trang 19đo n l nh trên, dòng đ u tiên:
Private Sub btnTong_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnTong.Click
Là s ki n Click c a nút l nh, t đ ng sinh ra khi ngự ệ ủ ệ ự ộ ườ ậi l p trình nh p đôiắ chu t vào nút l nh btnTong. Đây cũng là s ki n m c đ nh c a nút l nh.ộ ệ ự ệ ặ ị ủ ệ
Dòng ti p theo là khai báo bi n tên tong (đ hi u rõ h n v cú pháp khai báoế ế ể ể ơ ề
bi n chúng ta s xem xét k bài 2 c a giáo trình này): ế ẽ ỹ ở ủ
Dim tong As Integer = Convert.ToInt32(txtSo1.Text) +
Convert.ToInt32(txtSo2.Text)
Có th thay th b ng dòng l nh:ể ế ằ ệ
Dim tong As Integer = Integer.Parse(txtSo1.Text) +
Integer.Parse(txtSo2.Text)
Dùng đ chuy n ki u giá tr chu i nh p vào hai đi u khi n TextBox thành ki uể ể ể ị ỗ ậ ề ể ể
s nguyên, sau đó c ng hai s và gán k t qu cu i cùng cho bi n tong.ố ộ ố ế ả ố ế
Dòng l nh:ệ
lblKQ.Text = tong.ToString()
Dùng đ hi n t ng c a hai s ra đi u khi n Label.ể ệ ổ ủ ố ề ể
4. C u trúc c a ng d ng Visual Basic.NETấ ủ ứ ụ
4.1 Namespaces là gì?
Namespaces giúp t ch c các đ i tổ ứ ố ượng c a m t Assembly thành m t c u trúcủ ộ ộ ấ
đ d hi u h n, chúng nể ễ ể ơ hóm các đ i tố ượng liên quan l i v i nhau đ d truy c pạ ớ ể ễ ậ
b ng code:ằ
+ Ví d namespace ụ SQLClient đ c đ nh ngĩa trong ượ ị System.Data
Namespaces t o ph i đ y đ tên c a đ i tạ ả ầ ủ ủ ố ượng, tránh s nh p nh ng và các tênự ậ ằ xung đ t v i các class.ộ ớ
Trang 20Assembly thường đ nh nghĩa Namespace g c cho Project, đị ố ược thi t l p trongế ậ
h p tho i Project Properties. Assemply có Namespace g c là ộ ạ ố MyAssembly.
Ví d :ụ
Namespace Top
'Tên đầy đủ là MyAssembly.Top
Public Class Inside
'Tên đầy đủ là MyAssembly.Top.Inside
End Class
Namespace InsideTop
'Tên đầy đủ là MyAssembly.Top.InsideTop
Public Class Inside
'Tên đầy đủ là MyAssembly.Top.InsideTop.Inside
Public Sub Perform( )
Dim x As New Top.Inside( )
Dim y As New Top.InsideTop.Inside( )
End Sub
Khi g i code ph i tham chi u đ y đ đ n tên c a Namespace, đi u này làm choọ ả ế ầ ủ ế ủ ề code khó đ c:ọ
Dim x As New MyAssembly.Top.InsideTop.Inside
Vì v y, chúng ta có th dùng câu l nh Imports đ code đ n gi n h n nh sau:ậ ể ệ ể ơ ả ơ ư
Imports MyAssembly.Top.InsideTop
…
Dim x As New Inside( )
Trang 21Chúng ta cũng có th Import m t tên bí danh cho m t Namespace ho c m tể ộ ộ ặ ộ
ki u.ể
Ví d :ụ
Imports IT = MyAssembly.Top.InsideTop
…
Dim x As New IT.Inside
* L u ý: Đ thi t l p các thu c tính thông thư ể ế ậ ộ ường cho m t Project, chúng ta vàoộ menu Project\<tên đ án> Properties… h p tho i Properties cho Project s xu t hi nề ộ ạ ẽ ấ ệ cho phép b n thay đ i các tham s m c đ nh.ạ ổ ố ặ ị
Hình 15. C a s Project Propertiesử ổ
Trang 225. Bài t pậ
Bài 1: C i ti n ng d ng “C ng hai s ” trên b ng cách b sung thêm các nútả ế ứ ụ ộ ố ở ằ ổ
l nh Tính Hi u, Tích, Thệ ệ ương c a hai s ủ ố
Bài 2: Thi t k form nh p vào h , tên c a m t ng i. Hi n thông báo ra mànế ế ậ ọ ủ ộ ườ ệ hình đ chào ngể ười có h và tên đọ ược nh p.ậ
Hướng d n: ẫ
Đ n i hai chu i chúng ta s d ng phép n i &. ể ố ỗ ử ụ ố
Ví d : ụ “Nguyễn” & “ “ & “Bình” = “Nguyễn Văn Bình”
Trang 23BÀI 2. N N T NG C A NGÔN NG VB.NET Ề Ả Ủ Ữ
M c tiêu c a bài: ụ ủ
Hi u v các n n t ng c a VB.Net nh : ki u d li u, bi n, m ng, ;ể ề ề ả ủ ư ể ữ ệ ế ả
Hi u v cú pháp c u trúc đi u khi n trong VB.Net;ể ề ấ ề ể
Vi t ng d ng nh trên VB.net;ế ứ ụ ỏ
Nghiêm túc, t m trong quá trình ti p c n v i công c m i.ỉ ỉ ế ậ ớ ụ ớ
1. Các ki u d li uể ữ ệ
2,147,483,647
Dim I as Integer
S = 4000Long 64bit 9,233,372,036,854,775,808
đ n ế9,233,372,036,854,775,807
Dim Sg as Single
Sg = 899.99Double 64bit (d u ấ
ph y đ ng)ả ộ
1.797631348623E308 đ n ế1.797631348623E308
Dim D as DoubleD=3.1.4159265Decimal 128bit Trong kho ng +/ả
79,228x1024
Dim Dc as DecimalDc=7234734.5
Bl = TrueDate 64bit T 1/1/1 đ n 31/12/9999ừ ế Dim Da As Date
Da=#16/07/1984
Trang 24Object 32bit B t k ki u đ i tấ ỳ ể ố ượng nào Dim Obj As Object
2. Bi nế
2.1 Khái ni m ệ
M i ng d ng thỗ ứ ụ ường x lý nhi u d li u, ta dùng khái ni m "bi n" đ l u trử ề ữ ệ ệ ế ể ư ữ
d li u trong b nh máy tính, m i bi n l u tr m t d li u c a chữ ệ ộ ớ ỗ ế ư ữ ộ ữ ệ ủ ương trình
M c dù VB không đòi h i, nh ng ta nên đ nh nghĩa rõ ràng t ng bi n trặ ỏ ư ị ừ ế ước khi truy xu t nó đ code c a chấ ể ủ ương trình được trong sáng, d hi u, d b o trì và phátễ ể ễ ả tri n.ể
Bi n (Variable) là vùng l u tr đ ế ư ữ ượ c đ t tên đ ch a d li u t m th i trong ặ ể ứ ữ ệ ạ ờ quá trình tính toán, so sánh và các công vi c khác. ệ
Bi n thế ường có hai đă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.ỗ ế ể ứ ấ ộ ạ ữ ệ
2.2 Khai báo bi n ế
Cú pháp đ n gi n c a l nh đ nh nghĩa bi n:ơ ả ủ ệ ị ế
[Static|Public|Private|Dim] <tên bi n> As <ki u d li u> ế ể ữ ệ [= <Biểu thức>]
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 (,). ề ế ộ ỗ ấ ẩ
<ki u d li u>: là m t trong các ki u d li u đã tìm hi u trên.ể ữ ệ ộ ể ữ ệ ể ở
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.NET 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ì v y trong VB.NET b n c n khai báo bi n trậ ạ ầ ế ước khi s d ng nó.ử ụ
Vi c khai báo bi n có th đ t b t k đâu nh ng thệ ế ể ặ ở ấ ỳ ư ường được đ t đ u m iặ ở ầ ỗ
th t c, n i c n dùng bi n.ủ ụ ơ ầ ế
Bi n c c b : là bi n đế ụ ộ ế ược khai báo trong m t kh i l nh (Dim)ộ ố ệ
Ví d : Tìm giá tr ngh ch đ o c a xụ ị ị ả ủ
If x <> 0 Then
Trang 25Dim rec As Integer
Private: là bi n ch có hi u l c trong module đó (m c đ nh).ế ỉ ệ ự ặ ị
Friend: là bi n ch có hi u l c trong d án đó.ế ỉ ệ ự ự
Public: bi n có hi u l c không ch trong d án nó đế ệ ự ỉ ự ược khai báo mà còn trong các d án khác có tham chi u đ n d án này.ự ế ế ự
Ví d :ụ
Dim LastName As String
Phát bi u trên khai báo m t bi n tên là ể ộ ế LastName có ki u d li u là ể ữ ệ String. Sau
khi đã khai báo bi n thì b n có th gán hay l u thông tin vào bi n.ế ạ ể ư ế
2.3 Kh i t o giá tr cho bi n ở ạ ị ế
Ví d sau đây v a khai báo v a kh i t o giá tr cho các bi n:ụ ừ ừ ở ạ ị ế
Có hai lo i bi n m ng: m ng có chi u dài c đ nh và m ng có chi u dài thayạ ế ả ả ề ố ị ả ề
đ i lúc thi hành. ổ
Trang 263.2.1 M ng có chi u dài c đ nh: ả ề ố ị
Dim <Tên bi n m ng>(<Kích th ế ả ướ c>) [As <Ki u d li u>] ể ữ ệ
Lúc này ph n t đ u tiên có ch s là 0 & ph n t cu i cùng có ch s là ầ ử ầ ỉ ố ầ ử ố ỉ ố <Kích
th c >. ướ
Ho c:ặ
Dim <Tên bi n m ng>(<Ch s đ u> To <Ch s cu i>) [As <Ki u>] ế ả ỉ ố ầ ỉ ố ố ể
Ví d : ụ
' Khai báo một biến mảng 15 phần tử kiểu Integer
Dim Counters(14) As Integer
' Khai báo một biến mảng 21 phần tử kiểu Double
Public Sums(20)As Double
' Khai báo một biến mảng 10 phần tử kiểu chuỗi ký tự
Dim List (1 To 10) As String * 12
Hàm UBound tr v biên trên c a m t m ng. ả ề ủ ộ ả
Đây là m ng có kích thả ước thay đ i, đó là m t trong nh ng u đi m c a m ngổ ộ ữ ư ể ủ ả
đ ng vì nó giúp ta ti t ki m tài nguyên h th ng. Ta có th s d ng m t m ng cóộ ế ệ ệ ố ể ử ụ ộ ả kích th c l n trong m t th i gian nào đó r i xoá b đ tr l i vùng nh cho h th ng.ướ ớ ộ ờ ồ ỏ ể ả ạ ớ ệ ố Khai báo m t m ng đ ng b ng cách cho nó m t danh sách không theo chi u ộ ả ộ ằ ộ ề nào
Trang 27ReDim dùng đ xác đ nh hay thay đ i kích th c c a m t m ng đ ng. Ta ể ị ổ ướ ủ ộ ả ộ có thể dùng ReDim đ thay đ i s ph n t , s chi u c a m t m ng nhi u l n nh ng ể ổ ố ầ ử ố ề ủ ộ ả ề ầ ư không
th thay đ i ki u d li u c a m ng ngo i tr ki u m ng là ki u Variant. ể ổ ể ữ ệ ủ ả ạ ừ ể ả ể
M i l n g i ReDim t t c các giá tr ch a trong m ng s b m t. VB.NET kh iỗ ầ ọ ấ ả ị ứ ả ẽ ị ấ ở
t o l i giá tr cho chúng (Empty đ i v i m ng Variant, 0 cho m ng ki u s , chu iạ ạ ị ố ớ ả ả ể ố ỗ
r ng cho m ng chu i ho c Nothing cho m ng các đ i tỗ ả ổ ặ ả ố ượng). Nh ng đôi khi taư
mu n tăng kích c c a m ng nh ng không mu n làm m t d li u, ta dùng ReDim ố ỡ ủ ả ư ố ấ ữ ệ đi kèm v i t khoá Preserve. Ta xem ví d d i đây: ớ ừ ụ ướ
ReDim Preserve DynArray (UBound(DynArray) +10)
Tuy nhiên ch có biên trên c a chi u cu i cùng trong m ng đỉ ủ ề ố ả ược thay đ i ổ khi ta dùng Preserve. N u ta c tình thay đ i chi u khác ho c biên dế ố ổ ề ặ ưới thì VB.NET s ẽ báo
l i. ỗ
3.2 M t s thao tác trên m ng ộ ố ả
Truy xu t t ng ph n t trong m ng: <Tên m ng>(<V trí>) ấ ừ ầ ử ả ả ị
Sao chép m ng: ả Ta có th gán m t m ng cho m t m ng khác, ho c ể ộ ả ộ ả ặ k t qu trế ả ả
và quy lu t v kích th c và s chi u c a m ng.ậ ề ướ ố ề ủ ả
L i khi gán m ng có th x y ra lúc biên d ch ho c khi thi hành. Ta có th thêmỗ ả ể ả ị ặ ể
b y l i đ đ m b o r ng hai m ng là t ng thích tr c khi gán. ẫ ỗ ể ả ả ằ ả ươ ướ
Trang 28Khi g i hàm tr v m ng, bi n gi giá tr tr v ph i là m t m ng và có ki uọ ả ề ả ế ữ ị ả ề ả ộ ả ể
nh ki u c a hàm, n u không nó s báo l i "ư ể ủ ế ẽ ỗ không t ng thích ki u ươ ể ".
4. Toán tử
4.1 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 đó. ắ ấ ị ể ộ ị
4.2 Các lo i phép toán ạ
Các phép toán s h c: thao tác trên các giá tr có ki u d li u s ố ọ ị ể ữ ệ ố
Phép toán Ý nghĩa Ki u c a đ i sể ủ ố ố Ki u k t quể ế ả
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 nguyênấ ầ Integer, Long Integer, LongMod 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 : ệ 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 29Cá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: ả ị ủ
TRUE TRUE TRUE TRUE FALSE
TRUE FALSE FALSE TRUE FALSE
FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE FALSE TRUE
5. Câu l nh đi u khi nệ ề ể
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 ự ố ệ ế ộ ệ
Dim TodayTemp As Single, MinAge As Integer
Dim Sales As Single, NewSales As Single, FullName As StringCác l nh sau gán giá tr cho các bi n trên: ệ ị ế
FullName = txtName.Text
* L u ý: Ki u d li u c a bi u th c (v ph i c a l nh gán) ph i phù h p v iư ể ữ ệ ủ ể ứ ế ả ủ ệ ả ợ ớ
bi n ế ta c n gán tr ầ ị
Trang 30Ý nghĩa câu l nh:ệ Các dòng l nh ệ hay dòng 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ì câu l nh ti p theo sau c u trúc If ệ ế ư ề ệ ệ ế ấ Then được thi hành.
D ng đ y đ :ạ ầ ủ If Then Else
If <đi u ki n 1>ề ệ Then
[Kh i l nh 1] ố ệElseIf <đi u ki n 2>ề ệ Then
[Kh i l nh 2]ố ệ
[Else
[Kh i l nh n]] ố ệEnd If
ĐK SaiĐúng
Các câu lệnh
Trang 31VB.NET 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 : ụ
If (TheColorYouLike = Color.Red) Then
MsgBox("Bạn là người may mắn")
ElseIf (TheColorYouLike = Color.Green) Then
MsgBox("Bạn là người có nhiều hi vọng")
ElseIf (TheColorYouLike = Color.Blue) Then
MsgBox("Bạn là người dũng cảm")
ElseIf (TheColorYouLike = Color.Magenta) Then
MsgBox("Bạn là người hay u sầu")
Else
MsgBox("Bạn là người bình thường")
End If
5.3 Câu 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> ế ả ể ứ
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. ỏ ề ệ ố ệ ủ ầ ẽ ượ ự ệ
Trang 32Ví d c a l nh r nhánhụ ủ ệ ẽ If…Then trên có th vi t nh sau: ở ể ế ư
Select Case TheColorYouLike
Trang 335.5 C u trúc l p ấ ặ
5.5.1 L p không bi t tr ặ ế ướ ố ầ ặ c s l n l p
5.5.1.1 Câu l nh 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. ệ ượ ể ố ệ ẽ ượ ự ệ ấ ộ ầ
Khối lệnh
Trang 34Cũ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. ầ ặ
Ví d :ụ Đo n l nh dạ ệ ưới đây cho phép ki m tra m t s nguyên N có ph i ể ộ ố ả là số nguyên t hay không? ố
Dim i As Integer = 2
Do While i < Math.Sqrt(N) And (N Mod i = 0)
i = i + 1
Loop
If i > Math.Sqrt(N) And N <> 1 Then
MsgBox(N & " là số nguyên tố")
5.5.2 L p bi t tr ặ ế ướ ố ầ ặ c s l n l p v i câu l nh For…Next ớ ệ
Đây là c u trúc bi t trấ ế ước s l n l p, ta dùng bi n đ m tăng d n ho c ố ầ ặ ế ế ầ ặ gi mả
d n đ xác đ nh s l n l p. ầ ể ị ố ầ ặ
Cú pháp:
For <bi n đ m> = <đi m đ u>ế ế ể ầ To <đi m cu i> [ể ố Step <b c nh y>] ướ ả
[kh i l nh] ố ệ
Trang 35Bi n đ m, đi m đ u, đi m cu i, bế ế ể ầ ể ố ước nh y là nh ng giá tr s (Integer, ả ữ ị ố Single,
…). Bước nh y có th là âm ho c dả ể ặ ương. N u bế ước nh y là s âm thì đi m đ u ả ố ể ầ ph iả
l n h n đi m cu i, n u không kh i l nh s không đớ ơ ể ố ế ố ệ ẽ ược thi hành.
Khi Step không được ch ra, VB.NET s dùng bỉ ẽ ước nh y m c đ nh là m t. ả ặ ị ộ
Ví d : Đo n l nh sau đây s tính t ng dãy các s nguyên t 1 đ n N.ụ ạ ệ ẽ ổ ố ừ ế
Dim tong As Integer = 0
Dim i As Integer
For i = 1 To N
tong = tong + i
Next
For Each Next: T ng t vòng l p For Next, nh ng nó l p kh i l nh theoươ ự ặ ư ặ ố ệ
s ph n ố ầ t c a m t t p các đ i tử ủ ộ ậ ố ượng hay m t m ng thay vì theo s l n l p xácộ ả ố ầ ặ
đ nh. Vòng l p ị ặ này ti n l i khi ta không bi t chính xác bao nhiêu ph n t trong t pệ ợ ế ầ ử ậ
Ph n t trong m ng ch có th là bi n Variant. ầ ử ả ỉ ể ế
Không dùng For Each Next v i m ng ch a ki u t đ nh nghĩa vì ớ ả ứ ể ự ị Variant không ch a ki u t đ nh nghĩa. ứ ể ự ị
6. X lý l iử ỗ
L i có th phát sinh b t c lúc nào. Ví d nh khi b n n p m t file mà khôngỗ ể ấ ứ ụ ư ạ ạ ộ
có th c trong đĩa thì chự ương trình s g p l i. VB.NET có kh năng x lý nh ngẽ ặ ỗ ả ử ư nhi m v c a b n là ph i thông báo cho VB.NET bi t. Chính vì th kh i l nhệ ụ ủ ạ ả ế ế ố ệ
Try…Catch s bao b c đo n mã l nh có kh năng gây ra l i cho chẽ ọ ạ ệ ả ỗ ương trình.
Trang 36Thông thường có các l i x y ra do nh p xu t d li u, phép chia cho 0, thi t bỗ ả ậ ấ ữ ệ ế ị ngo i vi không s n sàng. ạ ẵ
Trong đó Finally là tùy ch n, các t khóa còn l i là b t bu c.ọ ừ ạ ắ ộ
Ví d sau ụ DiskDriverError s minh h a tình hu ng x lý l i runtime thẽ ọ ố ử ỗ ườ ng
th y nh t. Chúng ta t o m t form có nút nh n và m t ô nh PictureBox. Khi clickấ ấ ạ ộ ấ ộ ả vào nút thì nh trong m t đĩa m m có tên 6_82MELINH.ico s load vào ô nh. N uả ộ ề ẽ ả ế
b đĩa m m ra kh i m m thì ch y chỏ ề ỏ ổ ề ạ ương trình s báo l i không tìm th y đĩaẽ ỗ ấ trong A:\ ngay.ổ
Đ minh h a cho vi c này, chúng ta m m i m t d án và thi t k form nhể ọ ệ ở ớ ộ ự ế ế ư hình:
Hình 16
Trang 37Trong s ki n Button1_Click, gõ mã nh sau:ự ệ ư
Trang 386.2 S d ng m nh đ Finally ử ụ ệ ề
M nh đ này s cho phép dùng các phát bi u sau nó dù có hay không có l i x yệ ề ẽ ể ỗ ả
ra. Nó thu n ti n khi b n mu n d n d p l i, giá tr c a bi n, thu c tính khi b nậ ệ ạ ố ọ ẹ ỗ ị ủ ế ộ ạ
th c thi đo n mã b o v xong. Tr l i ví d trên, ta thêm vào đo n mã nh sau:ự ạ ả ệ ở ạ ụ ạ ư Try
Và ch y l i chạ ạ ương trình, lúc này thay vì phát sinh l i không mong mu n tỗ ố ừ
chương trình chúng ta s nh n đẽ ậ ược thông báo l i do mình ki m soát.ỗ ể
Trang 396.3 Cài đ t Try…Catch ph c t p h n ặ ứ ạ ơ
Khi chương trình ph c t p thì vi c b t l i cũng tr nên ph c t p h n. V iứ ạ ệ ắ ỗ ở ứ ạ ơ ớ Try…Catch b n có th :ạ ể
Đ t m t kh i hay nhi u kh i phát bi u gi a các t khóa.ặ ộ ố ề ố ể ữ ừ
Cho phép s d ng m nh đ l c l i ử ụ ệ ề ọ ỗ Catch When
Cho phép s d ng kh i ử ụ ố Try…Catch l ng nhauồ
Cùng v i đ i tớ ố ượng Err cho phép xác đ nh l i phát sinhị ỗ
Err là đ i t ng đ c bi t cung c p chi ti t thông tin l i phát sinh. Các thu cố ượ ặ ệ ấ ế ỗ ộ tính thông d ng Err.Number, Err.Description ch a thông tin mã l i, mô t chi ti tụ ứ ỗ ả ế
l i. Phỗ ương th c Err.Clear cho phép xóa b l i hi n hành. B ng sau đây li t kê cácứ ỏ ỗ ệ ả ệ
l i Runtime thỗ ường g p trong VB.NET:ặ
75 Truy c p đậ ường d n và file không đúngẫ
91 Bi n đ i tế ố ượng thi u t khóa truy xu t ế ừ ấ With
Trang 40423 Thu c tính hay phộ ương th c không cóứ
424 Yêu c u v đ i tầ ề ố ượng
429 Không th t o đ i tể ạ ố ượng ActiveX
430 L p đ i tớ ố ượng không h tr Automationỗ ợ
440 Không th t o đ i tể ạ ố ượng Automation
Bây gi v n dùng ví d trên nh ng ta thêm thu c tính Err.Number, Err.Descriptionờ ẫ ụ ư ộ
đ ng th i ta cũng tìm hi u thêm v m nh đ đ c l i ồ ờ ể ề ệ ề ọ ỗ Catch When.
B n s a l i th t c Button1_Click nh sau:ạ ử ạ ủ ụ ư
Try
PictureBox1.Image = System.Drawing.Image.FromFile _
("A:\6_82MELINH.ico")
Catch When Err.Number = 53 'nếu không thấy file
MsgBox("Kiểm tra lại đường dẫn và tên file")
Catch When Err.Number = 7 'Hết bộ nhớ
MsgBox("File ảnh quá lớn - hết bộ nhớ", ,