Bài giảng Giao tiếp và điều khiển bằng máy tính - Lê Tiến Lộc

pdf 122 trang ngocly 2980
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Giao tiếp và điều khiển bằng máy tính - Lê Tiến Lộc", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_giao_tiep_va_dieu_khien_bang_may_tinh_le_tien_loc.pdf

Nội dung text: Bài giảng Giao tiếp và điều khiển bằng máy tính - Lê Tiến Lộc

  1. B GIÁO D C VÀ ÀO T O TR NG I H C L C H NG KHOA IN-IN T o0o BÀI GI NG GIAO TI P VÀ IU KHI N BNG MÁY TÍNH Biên So n: LÊ TI N L C Biên Hòa, ngày 13 tháng 7n m 2011
  2. MC L C PH N 1: VISUAL BASIC C N B N Ch ng 1: MÔI TRU NG L P TRÌNH VB NET 1.1 S l c v l ch s c a VB.NET Trang 7 1.2 T ng quan .NET Trang 7 1.3 Cách cài t VB NET và b th vi n MSDN Trang 8 1.4 Giao di n và công c thông d ng trong VB NET Trang 14 1.4.1 Các công c c a VB.NET Trang 14 1.4.2 B thi t k Windows Forms Designer Trang 16 1.4.3 Hi n th b thi t k Form Trang 16 1.4.4 Ch y m t ch ng trình Visual Basic Trang 17 1.4.5 C a s thu c tính Properties Trang 17 1.4.6 Di chuy n và thay i kích th c c a s công c l p trình Trang 17 1.4.7 Xem tr giúp Trang 19 1.4.8 Thoát kh i VISUAL STUDIO.NET Trang 19 Ch ng 2: THI T K GIAO DI N FORM 2.1 Form và các thu c tính c a form Trang 24 2.2 Các control c s Trang 26 2.3 Các cách ch n i t ng Trang 28 2.4 hi u ch nh v trí Trang 28 2.4.1 Thay i v trí tu ý Trang 28 2.4.2 So trùng v trí ho c so trùng l gi a nhi u i t ng Trang 29 2.5 hi u ch nh kích th c i t ng Trang 29 2.5.1 Thay i kích th c tu ý Trang 29 2
  3. 2.5.2 So trùng kích th c nhi u i t ng Trang 29 2.5.3 Canh u kho ng cách gi a các i t ng Trang 29 Ch ng 3: BI N VÀ C U TRÚC L NH TRONG VB NET 3.1 Các ki u d li u c b n Trang 38 3.1.1 Các ki u s nguyên Trang 38 3.1.2 Các ki u s th c Trang 38 3.1.3 Ki u kí t (character) và ki u chu i (string) Trang 38 3.1.4 Ki u lu n lý (boolean) Trang 39 3.1.5 Ki u ngày (date) Trang 39 3.2 Khai báo h ng Trang 39 3.3 Khai báo bi n Trang 40 3.4 Làm vi c v i namespace Trang 40 3.4.1 Khái ni m Trang 40 3.4.2 Các namespace chính c a .NET Trang 41 3.4.3 Cách n p namespace vào b ng tham chi u Trang 43 3.4.4 Cách khai báo namespace Trang 43 3.4.5 Namespace m c nh Trang 43 3.4.6 t bí danh cho namespace Trang 43 3.5 Các phép toán c s Trang 44 3.5.1 Phép gán Trang 44 3.5.2 Toán t tính toán Trang 44 3.5.3 Toán t n i chu i Trang 44 3.5.4 Toán t tính toán vi t rút g n Trang 44 3.5.5 Toán t so sánh Trang 45 3
  4. 3.5.6 Toán t lu n lý AND, OR, NOT Trang 45 3.6 Các hàm d ng s n Trang 46 3.6.1 Hàm chuy n i ki u d li u Trang 46 3.6.2 Hàm toán h c Trang 46 3.6.3 Hàm x lý chu i Trang 47 3.6.4 Các hàm h u d ng khác Trang 47 3.7 Vi t s ki n click cho i t ng Button Trang 48 3.8 Vi t dòng chú thích (comment line) Trang 48 3.9 Thu c tính và ph ng th c c a i t ng Trang 48 3.10 Cú pháp tham chi u i t ng Trang 49 3.11 Vi t l nh r nhánh Trang 50 3.12 B y l i ngo i l phát sinh b ng try catch Trang 52 3.13 Các c u trúc l p thông th ng Trang 53 3.14 M ng Trang 56 3.15 Các lo i Message box Trang 57 3.16 V các hình c b n và x lý font Trang 59 3.17 nh th i timer Trang 60 3.18 iu khi n th t ch n theo ý mu n b ng phím Tab Trang 63 3.19 Các s ki n khác ngoài s ki n Click Trang 63 3.20 Control Combobox Trang 64 3.21 Control Listbox Trang 66 3.22 Control Menustrip Trang 66 3.23 Control Toolstrip Trang 68 3.24 nh l i v trí và kích th c c a i t ng khi kích th c Form thay i Trang 69 4
  5. Ch ng 4: X LÝ FILE TEXT TRONG VB.NET & CÁC H P THO I CHU N (COMMON DIALOG) 4.1 Ch n ng d n ng cho File Trang 81 4.2.Ki m tra s t n t i c a File Trang 81 4.3. c và hi n th n i dung file text lên Textbox trên Form Trang 82 4.4. Ghi n i dung Textbox trên Form vào file text Trang 83 4.5. Sao chép file text Trang 84 4.6. Di chuy n file text Trang 85 4.7. Xoá file text Trang 85 4.8. Các h p tho i chu n Trang 86 PH N 2: GIAO TI P NGO I VI TRONG VB CH Ơ NG 5: GIAO TI P MÁY TÍNH CHU N RS232 5.1 S l c v chu n RS-232 Trang 93 5.2 Xác l p các thông s cho c ng truy n thông n i ti p trên Visual Basic Trang 97 5.3 Vi t ch ng trình truy n nh n n i ti p trên VB NET Trang 98 5.4 Vi t ch ng trình truy n nh n n i ti p trên V K 8051 Trang 103 CH Ơ NG 6: GIAO TI P MÁY TÍNH QUA C NG LPT 6.1 C u trúc c ng LPT Trang 111 6.2 Ho t ng c a Parallel Port Trang 113 6.3 Ch c n ng các Pin trong Parallel port Trang 112 6.4 Vi t ch ng trình truy n nh n song song n gi n trên VB.NET Trang 114 6.5 Ph n c ng giao ti p Trang 116 5
  6. BÀI GI NG GIAO TI P IU KHI N MÁY TÍNH PH N 1: VISUAL BASIC C N B N CHU ƠNG I MÔI TRU NG L P TRÌNH VB NET Mc ích – Yêu c u Sau khi h c xong ch ng này sinh viên n m uc: - Lch s phát tri n ngôn ng VB - Tng quan v .NET - Cách cài t VB NET và b th vi n MSDN - Giao di n và công c thông d ng trong VB NET S ti t lên l p: 5 Bng phân chia th i lu ng STT NI DUNG S TI T 1 Lch s phát tri n, tính n ng, t ng quan v VB NET 1 2 Cài t VB NET và MSDN 1 3 Làm quen giao di n và các công c thông d ng trong VB NET 3 Tr ng tâm bài gi ng - Nm uc các tính n ng c a VB NET. - Bi t cách l p trình n gi n trên VB NET. 6
  7. 1.1 S l c v l ch s c a VB.NET (xem [4 tr 2]) Ngôn ng BASIC (Beginner’s All Purpose Symbolic Instruction Code) ã có t n m 1964. BASIC r t d h c và d dùng. Trong vòng 15 n m u, có r t nhi u chuyên gia Tin H c và công ty t o các ch ng trình thông d ch (Interpreters) và biên d ch (Compilers) cho ngôn ng làm BASIC tr nên r t ph thông. Nm 1975, Microsft tung ra th tr ng s n ph m u tay Microsoft BASIC và ti p ó Quick BASIC (còn g i là QBASIC) thành công r c r . Quick BASIC phát tri n trong n n Windows nh ng v n khó kh n khi t o giao di n ki u Windows. Sau ó nhi u n m, Microsoft bt u tung ra 1 s n ph m m i cho phép ta k t h p ngôn ng d h c BASIC và môi tr ng phát tri n l p trình v i giao di n b ng hình nh (Graphic User Interface – GUI) trong Windows. ó là Visual Basic Version 1.0 Visual Basic.NET (VB.NET) là ngôn ng l p trình khuynh h ng i t ng (Object Oriented Programming Language) do Microsoft thi t k l i t con s không. Visual Basic.NET (VB.NET) không k th a VB6 hay b sung, phát tri n t VB6 mà là m t ngôn ng l p trình hoàn toàn m i trên n n Microsoft ‘s .NET Framework. Do ó, nó c ng không ph i là VB phiên b n 7. Th t s , ây là ngôn ng l p trình m i và r t l i h i, không nh ng l p n n t ng vng ch c theo ki u m u i t ng nh các ngôn ng l p trình hùng m nh khác ã vang danh C++, Java mà còn d h c, d phát tri n và còn t o m i c h i hoàn h o giúp ta gi i áp nh ng v n khúc m c khi l p trình. H n n a, vi ngôn ng VB ta không c n quan tâm sâu n nh ng thao tác l nh c s , Visual Basic.NET (VB.NET) ã giúp ta i phó v i các ph c tp khi l p trình trên n n Windows do ó ta ch t p trung công s c vào các v n liên quan n d án mà thôi. 1.2 Tng quan .NET (xem [4 tr 7]) .NET là t ng trung gian gi a các ng d ng (applications) và h iu hành (OS). T ng .NET cung c p m i d ch v c b n giúp ta t o ra các công d ng mà ng d ng òi h i, gi ng nh h iu hành cung c p các d ch v c b n cho ng d ng (nh : c hay vi t các t p tin (files) vào cng, ). Tng này bao g m 1 b các ng d ng và h iu hành g i là .NET Servers. Nh v y, .NET g n nh là m t b s u t p các nhu li u và khái ni m k t h p l n nhau làm vi c nh m giúp ta to ra các ch ng trình ng d ng. Trong ó: - Tp h p các i t ng (objects) c g i là .NET Framework - Tp h p các d ch v y m tr m i ngôn ng l p trình .NET g i là Common Laguage Runtime (CLR). Các thành ph n c b n c a .NET gm: - User Applications - .NET Framework - .NET Servers - .NET Devices - Hardware Components 7
  8. 1.3 Cách cài t VB NET và b th vi n MSDN (xem [4 tr 91]) Bt u v i d a 1 c a b Microsoft Visual Studio.NET, d a này t kh i ng và hi n th Windows h ng d n ta cài Microsoft Visual Studio.NET Setup. N u CD không t kh i ng c, ta c n ch y ng d ng ‘setup.exe’ trong v trí g c (root directory): Ch y Windows Explorer, ch n d a c ng ch a Microsoft Visual Studio.NET Setup d a 1, nh p ôi ng d ng ‘setup.exe’ hay Kh i ng (Windows Start Menu) và ch n ‘Run’, gõ hàng ch : ‘e:\setup.exe’ (n u CD/DVD drive c a ta là drive E). Microsoft Visual Studio.NET hi n th 4 giai on chính (12 b c) cài t. Bc 1: u tiên là chu n b môi tr ng l p trình .NET v i ‘Visual Studio .NET Prerequisites’ Hình 1.1 Bc 2: Ca s Visual Studio.NET Prerequisites Setup hi n ra, ch n ‘I agree’ ch p nh n iu ki n dùng và nh p Continue. 8
  9. Hình 1.2 Bc 3: Nh p Install Now! cài các ng d ng liên h t o môi tr ng .NET. L u ý ây, Microsoft Visual Studio.NET s dò tìm nh ng ng d ng (application) c n thi t trong máy vi tính và tùy theo m i máy, b ng li t kê ng d ng có th khác nhau. Thí d ây cho bi t máy vi tính c n 4 ng d ng ph thu c nh hình sau: Hình 1.3 Bc 4 : Ch cho n khi nào Microsoft Visual Studio.NET cài xong các ng d ng ph thu c, nh p nút Done. 9
  10. Hình 1.4 Bc 5: Ti p t c ch n Visual Studio.NET Hình 1.5 Bc 6: Nh p d a 1 vào máy và nh p nút OK. 10
  11. Hình 1.6 Bc 7: Ta ch n ‘I agree’ và cung c p Product Key tr c khi nh p nút Continue. Hình 1.7 Bc 8: Ta ch ch n nh ng gì liên h n Visual Basic.NET (VB.NET) cho khóa h c Visual Basic.NET (VB.NET) C B n. Xóa b (uncheck) ngôn ng l p trình Visual C++.NET, Visual C#.NET, Visual J#.NET và các ng d ng liên h , t nh : template, documetation, 11
  12. Hình 1.8 Bc 9: Nh p Install Now. Microsoft Visual Studio.NET s ch y ng d ng cài và b trí này khoãng trên d i 1 ti ng ng h tùy theo kh n ng máy vi tính. Hình 1.9 Bc 10: Nh p Done. Microsoft Visual Studio.NET s hi n th Windows cài các thông tin ph giúp l p trình và c th vi n ta tham kh o khi l p trình v i Visual Basic.NET (VB.NET): 12
  13. Hình 1.10 Bc 11: Ch n Product Documetation và nh p d a 3 Microsoft Visual Studio.NET (t c d a 1 MSDN): Hình 1.11 Hình 1.12 13
  14. Bc 12: Ti p t c v i các d a 2, 3 MSDN cho n h t. Hình 1.13 Nh v y, ta s n sàng cho vi c l p trình v i Visual Basic.NET (VB.NET). Mc k hng d n s l c cách dùng Microsoft Visual Studio.NET Integrated Development Environment (g i t t là IDE) cho vi c t o các ng d ng (application) trong n n Windows. 1.4 Giao di n và công c thông d ng trong VB NET (xem [4 tr 110]) 1.4.1 Các công c c a VS.NET Công c trong vs.NET r t phong phú. Sau ây là màn hình làm vi c c a b vs.NET: Hình 1.14: Giao di n chính VS.NET 14
  15.  Th c n chính (Main Menu) Menu chính c a Microsoft Visual Studio.NET IDE bao g m:  File: Tiêu chu n chung cho m i ng d ng (application) trong n n Windows. File dùng m (open) hay óng (close) các t p tin (files) hay d án (project).  Edit: Cung c p các ch n l a khi so n ngu n mã và dùng các công c l p trình, t nh : Undo, Redo, Cut, Copy, Paste và Delete  View: Cung c p s ch n l a hi n th các Windows t o môi tr ng c a IDE, nh : Solution Explorer, Properties, Output, Tool Box, Server Explorer. N u ta ý s th y các Windows này th ng n m 2 bên ho c bên d i window thi t k Form hay so n ngu n mã.Các windows này c ng có th hi n l hay thu kín l i nh ng ch cho window thi t k c rng rãi.  Project: Dùng qu n lý d án (project) b ng cách thêm vào hay xóa b các t p tin liên h .  Build: Mt l a ch n quan tr ng trong th c n là Build cho phép ta xây d ng và ch y ng dng (application) 1 cách c l p bên ngoài IDE.  Debug: Không nh ng giúp ph ng ti n rà tìm các l i l p trình trong môi tr ng IDE mà còn giúp ki m tra t ng b c m t các ngu n mã trong d án (project).  Data: Giúp ta n i và s d ng d ki n hay thông tin trong C S D Li u (Database).  Tools: Ch a các công c b trí Microsoft Visual Studio.NET IDE.  Windows: Tiêu chu n chung dùng qu n lý m i windows trong IDE.  Help: Cung c p kt ni yêu c u giúp v i Microsoft Visual Studio.NET documentation hay t m ng Internet.  Thanh công c (Toolbars) Cách dùng thanh công c s c h ng d n tùy t ng Project. Tuy nhiên, 1 cách t ng quát, thanh công c m c nh bao g m:  New Project: T o m t Project m i.  Add Item: Dùng thêm các i t ng nh Item, Form, User control, Component, Module hay Class vào Form.  Open File: M m t file b t k .  Save: L u tr form hay module ang dùng.  Save All: L u tr m i forms, modules, ang dùng hay ang m  Cut  Copy 15
  16.  Paste  Undo  Redo  Navigate Backward (l t lui)  Navigate Forwards (l t t i)  Start: Nút ch y th ng d ng trong IDE (ho c nh n F5)  Build Configuration (b trí xây d ng ng d ng) trong IDE. ây, cho ta bi t b trí hi n dùng là Debug  Find in files: Truy tìm t p tin  Toolbar Options: hi n th thêm các công c ph thu c khác.  Hp công c (Toolbox) Dùng ch a các Control Nh p n h p công c n m phía bên tay trái window thi t k nh hình sau. H p công c bao gm:  Hp Data  Hp Components  Hp Windows Forms  Hp Clipboard Ring  Hp Gerneral Hình 1.15: Thanh công c thi t k VS.NET 1.4.2 B thi t k Windows Forms Designer VS.NET có m t b thi t k form tr c quan, b n s làm quen d n d n b i vì th ng trong các d án phát tri n có th có r t nhi u Form. 1.4.3 Hi n th b thi t k Form (Solution Explorer) Góc ph i màn hình là c a s Solution Explorer. Hi n th nó View | Solution Explorer. Ca s này ch a toàn b các ph n t có s d ng trong d án. Double Click vào Form1.vb trong c a s Solution Explorer b n s th y t t c các file ch a form. Nh p chu t vào bi u t ng View Designer trong solution hi n th form thi t k dng tr c quan. 16
  17. 1.4.4 Ch y m t ch ng trình Visual Basic Nh p chu t vào nút start màu xanh trên standard bar ch y ch ng trình (có th vào thanh menu ch n th Debug->Start debugging hay n phím t t F5). Hình 1.16: Start Debugging Nh p chu t vào nút stop màu xanh trên standard bar thoát ch ng trình debug (có th vào thanh menu ch n th Debug->Stopdebugging hay n phím t t Ctrl+Alt+Break). Hình 1.17: Stop Debugging 1.4.5 C a s thu c tính Properties Cho phép thay i thông s c a i t ng thi t k trên form. Thu c tính c a i t ng có th thay i b ng 2 cách: Vi t mã cho s ki n khi ch y ch ng trình (code editter) hay thay i khi ang thi t k (b ng cách t Form ch n i t ng c n thay i nh p chu t ph i ch n Properties). Thay i các thu c tính i t ưng ca s này. Hình 1.18: Ca s Properties 1.4.6 Di chuy n và thay i kích th c c a s công c l p trình Tt c các c a s c a b công c vs.NET u có th di chuy n trôi n i (undocking) cng nh thay i kích th c trong môi tr ng IDE nh m m c ích t o m t tr ng hay giao di n tr ng (space) cho vi c thi t k các forms c r ng rãi tho i mái. 17
  18. Ta docking hay undocking b ng cách dùng mouse kéo lê ph n tiêu (Title Section) ca i t ng t vào v trí mong mu n. Nh n gi chu t trái và kéo n v trí mong mu n. Hình 1.19: Di chuy n c a s Solution Explorer ra ngoài Nh n gi chu t trái và kéo n v trí có d u tr . Hình 1.20: Tr c a s Solution Explorer v v trí c 18
  19. 1.4.7 Xem tr giúp Bn có th xem tr giúp tr c tuy n hay cài b MSDN xem tr giúp. Có nhi u cách xem tr giúp khác nhau (internet có r t nhi u forum h tr c ng ng VB). 1.4.8 Thoát kh i VISUAL STUDIO.NET Lu l i nh ng gì chúng ta làm b ng cách ch n File | Save all . Ch n File | Exit thoát kh i vs.NET. Luy n t p trên l p Câu h i lý thuy t Câu 1: T Visual Basic có ngh a gì? Câu 2: ng d ng c a VB làm gì? Câu 3: Cách biên d ch ra file .exe? Câu 4: Tính n ng các control thông d ng? Câu 5: K tên m t s ngôn ng l p trình mà bn bi t? u nhu c im? Câu 6: T i sao g i là .NET? Câu 7: Công d ng c a th vi n MSDN? Câu 8: C u hình yêu c u t i thi u c a PC cài c VB.NET? Câu 9: Các b c t o m i và l u project VB.NET? Câu 10: Các b c m và l u project VB.NET? Bài t p luy n t p Bài 1: Kh i ng chu ng trình VB NET và ch n ung d n l u project. Hu ng d n: B1: T giao di n kh i ng VB NET ch n Create Project B2: T i c a s Newproject ch n Windows Form Aplication B2 B1 Hình 1.21 B3 : T giao di n thi t k ch n File/Save All 19
  20. B3 Hình 1.22 B4 : C a s Save Project hi n ra ta t tên và ưng d n l ưu project B4 Hình 1.23 Bài 2: Cách l y các thanh toolbox trên VB NET Hu ng d n: T thanh menu ch n View/Toolbox hay nh n t h p phím Ctr+Alt+X Hình 1.24 Thanh toolbox hi n ra. Ta có th cho n hi n nhanh thanh toolbox b ng cách click vào bi u tu ng sau: 20
  21. Click here to Hide toolbox Hình 1.25 Bài 3: Cho n hi n c a s Properties Hu ng d n: Properties là c a s ch a các thu c tính c a các control ta có th cho n hi n b ng cách vào menu View/ Properties Window hay nh n F4. Hình 1.26 hay t Form thi t k ta ch n i tu ng c n iu ch nh Properties và nh p ph i chu t ch n Properties Bài 4: Cho n hi n c a s qu n lý Solution Explorer Hu ng d n: Solution Explorer là c a s qu n lý project ta có th cho n hi n b ng cách vào menu View/ Solution Explorer hay nh n t h p phím Ctr+Alt+L. Hình 1.27 21
  22. Bài 5: Cho n hi n c a s qu n lý l i. Hu ng d n: Error list là c a s qu n lý l i khi debug ta có th cho n hi n b ng cách vào menu View/ Error list hay nh n t h p phím Ctr+W ho c Ctr+E. Hình 1.28 22
  23. CHU ƠNG II THI T K GIAO DI N FORM Mc ích – Yêu c u Sau khi h c xong ch ng này sinh viên n m uc: - Các thu c tính c a FORM - Các control c s - Các cách ch n i t ng - Hi u ch nh v trí và kích thu c i tu ng S ti t lên l p: 5 Bng phân chia th i lu ng STT NI DUNG S TI T 1 Các thu c tính c a FORM 1 2 Các control c s 2 3 Các cách ch n i t ng 1 4 Hi u ch nh v trí và kích thu c i tu ng 1 Tr ng tâm bài gi ng - Bi t cách s d ng các control trên VB NET. - Nm uc cách thi t k giao di n và l p trình s ki n. 23
  24. 2.1 FORM VÀ CÁC THU C TÍNH C A FORM (xem [4 tr 270]) Mt form c l u trên b nh thành 1 file .vb – ta g i là filename ca form. ng th i, form còn thu c tính name dùng g i n trong quá trình x lý form  cn phân bi t. Sau ây là các thu c tính thông d ng c a form - Name : nh ã nói trên, không gõ d u ti ng Vi t và kho ng tr ng. - Text : là n i dung hi n th trên thanh tiêu c a form. - BackColor : màu n n. - BackgroundImage : load hình làm n n form. - Icon : ch n bi u t ng cho form. - ShowIcon : True - hi n th / False - không hi n th bi u t ng form khi ch y. - MinimizeBox, MaximizeBox : True - hi n th / False - n các nút thu nh , phóng to ca s form khi ch y. - Size : qui nh kích th c form v i n v tính: pixel. - AutoResize : False - không / True - cho phép t ng tr v kích th c ban u sau các thao tác thay i c a ng i dùng l n ch y ch ng trình tr c ó. - TopMost : True – luôn xu t hi n trên các c a s khác / False – ng c l i. - FormBorderStyle : Hình 2.1: Các ki u FormBorderStyle - óng/ m 1 Form b ng dòng l nh ta dùng l nh: Close/Show Ví d 1: Form2.Show() ‘l nh m form2 Ví d 2: Form2.Close() ‘l nh óng form2 Lu ý khi vi t l nh cho Form thì có th dùng t Me thay th tên Form Ví d 3: Me.Close() ‘l nh óng Form hi n hành Trong m t ch ng trình có th c n nhi u Form, ta l y thêm Form khác vào b ng cách vào th Project->Add Windows Form, c a s Add New Item hi n ra ch n nút Add 24
  25. Hình 2.2 Thêm vào 1 NewForm Khi ó trong mt ch ng trình có nhi u Form, ta có th ch n from chính hi n ra khi ch y ch ng trình b ng cách vào Project->WindowsApplication1 Properties (n u không ch n s mc nh là Form1), m c Starup form ta s xu ng và ch n Form b t u. Hình 2.3 Ch n Form Startup Ngoài vi c dùng ch a các Control iu khi n, b n thân Form c ng là 1 control, s ki n thông d ng nh t hay dùng cho Form là Form_Load. vi t lênh cho s ki n Formload ta double click vào Form thi t k và chèn on code c n x lý phí trên khai báo Endsub Ví d : Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ‘Chèn on code c n x lý vào ây End Sub 25
  26. Các l u ý khi vi t Code: - t chú thích cho các dòng l nh ta dòng chú thích sau d u ‘ Ví d : Me.close ‘Chú thích: ây là l nh óng Form hi n hành - Khi các dòng l nh quá dài và ta mu n xu ng hàng thì ph i dùng d u n i hàng nh sau “ _” (kho ng tr ng và d u _ ) sau ó có th xu ng hàng và vi t ti p. Ví d : Dim a, b, c, x, y, z, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10 As Integer ‘Ch ưa dùng d u n i hàng Dim a, b, c, x, y, z, b1, b2, b3, b4, b5, b6, b7, b8, b9,b10 _ ‘ã dùng d u n i hàng As Integer - Khi mu n xu ng hàng trên Label, textbox hay Msg ta dùng hàm vbCrLf , d u & là toán t ni chu i. Ví d : Label1.Text = "B c t i èo ngang bóng x tà" & vbCrLf & "C cây chen lá á chen hoa" 2.2 CÁC CONTROL C Ơ S (xem [4 tr 348]) Tên - STT Ý ngh a Cách dùng Thu c tính bi u t ng Nhãn th ng Ch n công c kéo - Name : không hi n th ra ngoài mà ch dùng dùng làm tiêu vào n n form  gi n khi x lý, vì v y, name không d u ti ng , b ng tên cho khung o. Vi c gõ Vi t và kho ng tr ng các control khác. dòng v n b n ti ng - Text : n i dung nhãn hi n th . 1 Label Vi t (chu n Unicode) - Font : ki u ch hi n th . ti khung o này - Image : hình nh hi n th . t ng ng gõ v n b n - ForeColo r: màu ch hi n th . trong thu c tính Text. - BackColor : màu n n hi n th . - Name, Text, Font, ForeColor, BackColor : t ng t Label Là n i nh p li u Ch n công c kéo - MaxLength : qui nh chi u dài c c i chu i ho c hi n th k t vào n n form  2 TextBox s nh p vào TextBox, m c nh là 32767 byte. qu khi ch y khung. - MultiLine : m c nh là False, ch cho phép ch ng trình. nh p v n b n trên 1 dòng. Mu n nh p v n b n nhi u dòng ch n True. Ch n công c kéo vào - Name, Text, Font, ForeColor, BackColor : 3 Button To nút l nh. nn form  nút. t ng t Label To khung ch a Ch n công c kéo 4 PictureBox nh. vào n n form  - Name, Image : t ng t Label khung. 26
  27. iu khi n các Ch n công c kéo - Name, Text : t ng t Label tu ch n. Có th vào n n form  ô - Checked : m c nh là False ng th i ch n vuông và nhãn. - CheckState : Unchecked, ngh a là không ch n. CheckBox nhi u tu ch n. Ch n - check - kích Th ng m c nh không ch n cho n khi 5 vào ô vuông có ch y ch ng trình thì tu thu c vào s l a ch n du; b ch n – ca ng i s d ng. uncheck - kích vào ô vuông m t d u. Ch n công c GroupBox : gom GroupBox kéo vào - Name, Text : t ng t Label các RadioButton 6 GroupBox nn form  khung. cùng tính n ng thành nhóm. RadioButton : Ch n công c - Name, Text : t ng t Label iu khi n các RadioButton kéo vào - Checked : m c nh là False tu ch n. T i nn form, bên trong - CheckState : Unchecked, ngha là không ch n. mt th i im khung GroupBox v a Trong s các tu ch n nên check m c nh vào ch c ch n RadioButton to  ch m tròn và tu ch n u tiên, n khi ch y ch ng trình thì 7 mt tu ch n nhãn. Có th ch n tu thu c vào s thay i l a ch n c a ng i s trong nhóm. ng th i hai dng. RadioButton thu c hai GroupBox khác nhau cùng form. Tr tr chu t v Kích lên công c . 8 Pointer dng u. a các Control c n thi t k vào Form b ng cách kéo lê (Click and Drag) các thi t b trong h p công c (Toolbox) vào Form và b trí nh sau: Ví d : Dùng Lable trình bày tiêu Toán C ng nh sau: • Nh p h p công c (phía bên trái IDE) và nh p n thi t b Label (Click ) • V ( and Draw) 1 hình ch nh t trong m t tr ng c a Form • Ch n Properties Window c a Label ( ý có úng name label c ch n hay không, nu không ta có th m nh m properties window c a m t thi t b nào khác ch không ph i thi t b ta mu n b trí) • Ch n c tính (property) Text va gõ hàng ch Toán C ng (có th dùng ng d ng VPSKeys v i b trí Unicode ho c các ng d ng gõ ti ng Vi t t ng ng) • Ch n và m r ng c tính (property) Fonts và thay i c ch và màu tùy ý. • Ch n Name và t tên theo tiêu chu n nh tr c (Có th không c n i Name vì Name là tên trình d ch g i n x lý) • Kéo lê (Click and Drag) thi t b này n v trí tùy ý trong Form. 27
  28. Hình 2.4: Kéo Control vào FormDesign Cách l y các Control khác t ng t nh trên. T ng t nh Form, sau khi thi t k ta c n vi t l nh cho s ki n nào thì Double Click vào i t ng ó. Ví d c n vi t l nh cho Button1, trên Form Design ta nh p double vào button1 c a s code hi n ra, ta vi t l nh c n x lý vào. Ví d : on code óng ch ng trình l i khi nh n button1 nh sau: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Close() ‘ph n t vi t End Sub Ta ch quan tâm và vi t code th c hi n s ki n óng ch ng trình (l nh Me.close) còn ph n khai báo và k t thúc s ki n Button c nh n ã c VB t ng sinh mã. L u ý không c thay i ph n code Private Sub và End Sub 2.3 CÁC CÁCH CH N I T NG (xem [4 tr 408]) - CTRL+A ch n t t cc i t ng có trên n n form. - Kích lên i t ng ch n m t i t ng duy nh t. - Ch n control Pointer trên toolbox tr tr chu t v d ng m i tên m t chi u màu tr ng / v m t ng bao o ch nh t thì nh ng i t ng n m trong vùng bao này s c ch n ng th i. - Nh n gi SHIFT và l n l t kích lên nhi u i t ng n m r i r c nhau ch n chúng ng th i. 2.4 HI U CH NH V TRÍ (xem [4 tr 408]) 2.4.1 Thay i v trí tu ý 28
  29. - Nh n gi chu t trái trên i t ng và kéo chu t di chuy n i t ng n v trí mong mu n / nh chu t. 2.4.2 So trùng v trí ho c so trùng l gi a nhi u i t ưng - Ch n ng th i nhi u i t ng. - Menu Format / Align  Hình 2.5: Ch nh v trí i t ưng 2.5 HI U CH NH KÍCH TH C I T NG (xem [4 tr 408]) 2.5.1 Thay i kích th c tu ý - Ch n i t ng trên nên form  xu t hi n khung bao o (nét ch m ch m) và các n t vuông tr ng xung quanh i t ng. - Tr chu t vào m t trong các n t trên khung bao  mi tên 2 chi u / nh n gi trái chu t và rê h ng biên m r ng, rê h ng tâm thu nh i t ng / nh chu t. 2.5.2 So trùng kích th c nhi u i t ng - Ch n ng th i nhi u i t ng. - Menu Format / Make Same Size  Hình 2.6: Ch nh kích th ưc i t ưng 2.5.3 Canh u kho ng cách gi a các i t ng - Ch n ng th i nhi u i t ng. 29
  30. - Menu Format / Horizontal Spacing (theo ph ng ngang) ho c Vertical Sapcing (theo ph ng ng)  Hình 2.7: Canh kho ng gi a các i t ưng Luy n t p trên l p Câu h i lý thuy t Câu 1: Các thu c tính thông d ng c a FORM? Câu 2: im khác nhau gi a Label và Texbox? Câu 3: im khác nhau gi a Checkbox và Radiobutton? Câu 4: im khác nhau gi a picturebox và Imagelist? Câu 5: im khác nhau gi a thu c tính Name và text? Câu 6: Hãy nêu ý ngh a c a Label? Câu 7: Hãy nêu ý ngh a c a Textbox? Câu 8: Hãy nêu ý ngh a c a Picturebox? Câu 9: Hãy nêu ý ngh a c a button? Câu 10: Hãy nêu ý ngh a c a Radiobutton? Câu 11: Hãy nêu ý ngh a c a GroupBox? Câu 12: Hãy nêu ý ngh a c a Pointer? Câu 13: Hãy nêu ý ngh a c a Checkbox? Câu 14: Hãy nêu ý ngh a c a Form? Câu 15: Hãy nêu cách dùng Label? Câu 16: Hãy nêu cách dùng Textbox? Câu 17: Hãy nêu cách dùng Picturebox? Câu 18: Hãy nêu cách dùng Button? Câu 19: Hãy nêu cách dùng Radiobutton? Câu 20: Hãy nêu cách dùng GroupBox? Câu 21: Hãy nêu cách dùng Pointer? Câu 22: Hãy nêu cách dùng Checkbox? Câu 23: Hãy nêu cách dùng Form? Câu 24: Hãy nêu các thu c tính thông d ng c a Form? Câu 25: Hãy nêu các thu c tính thông d ng c a Label? Câu 26: Hãy nêu các thu c tính thông d ng c a Textbox? Câu 27: Hãy nêu các thu c tính thông d ng c a Checkbox? Câu 28: Hãy nêu các thu c tính thông d ng c a Picturebox? 30
  31. Câu 29: Hãy nêu các thu c tính thông d ng c a Button? Câu 30: Hãy nêu các thu c tính thông d ng c a Radiobutton? Câu 31: Hãy nêu các thu c tính thông d ng c a Groupbox? Câu 32: Hãy nêu các thu c tính thông d ng c a Pointer? Câu 33: Cách ch n ng th i nhi u i t ng trên Form? Câu 34: Cách hi u ch nh v trí i t ng? Câu 35: Cách hi u ch nh kích th c i tng? Bài t p luy n t p Bài 1: Vi t chu ng trình VB hin th hình nh trên Picturebox Hu ng d n: Sinh viên t o giao di n nh ư hình d ưi dùng picturebox (có th dùng hình b t k ) Hình 2.8 Bài 2: Vi t chu ng trình VB hi n th hình nh trên Imagelist Hu ng d n: Sinh viên t o giao di n nh ư hình d ưi dùng Imagelist thay i hình Hình 2.9 Bài 3: Vi t chu ng trình VB thay i tên Form dùng Radiobutton Hu ng d n: Sinh viên t o giao di n nh ư hình d ưi 31
  32. Hình 2.10 Code g i ý: S ki n radiobutton1 ưc Click Me.Text = "Hello world" S ki n radiobutton2 ưc Click Me.Text = "Good Bye" Bài 4: Vi t chu ng trình VB thay i tên Form dùng Checkbox Hu ng d n: Sinh viên t o giao di n nh ư hình d ưi Hình 2.11 Code g i ý: S ki n Checkbox1 ưc Click Me.Text = "Hello world" S ki n Checkbox2 ưc Click Me.Text = "Good Bye" Bài 5: Vi t chu ng trình VB s d ng Groupbox có 2 s l a ch n dùng radiobutton trên Form. Hu ng d n: Sinh viên t o giao di n nh ư hình d ưi 32
  33. Hình 2.12 Bài 6: Vi t chu ng trình VB hi n th thông tin trên 1 textbox Hu ng d n: Sinh viên t o giao di n nh ư hình d ưi Hình 2.13 Bài 7: Vi t chu ng trình VB hi n th thông tin trên 1 label Hu ng d n: Sinh viên t o giao di n nh ư hình d ưi Hình 2.14 Bài 8: Vi t chu ng trình VB s d ng 2 button thay i n i dung trên Label Hu ng d n: Sinh viên t o giao di n nh ư hình d ưi 33
  34. Hình 2.15 Code g i ý: S ki n Button1 ưc Click Label1.Text = "Hello world" S ki n Button2 ưc Click Label1.Text = "Good Bye" Bài 9: Vi t chu ng trình VB s d ng Button n hi n 1 Label Hu ng d n: Sinh viên t o giao di n nh ư hình d ưi Hình 2.16 Code g i ý: S ki n Button1 ưc Click Label1.Visible = False S ki n Button2 ưc Click Label1.Visible = True Bài 10: Vi t chu ng trình VB s d ng 2 Button thay i tên Form. Hu ng d n: 34
  35. Hình 2.17 Code g i ý: S ki n Button1 ưc Click Me.Text = "Hello world" S ki n Button2 ưc Click Me.Text = "Good Bye" Bài t p v nhà Bài 1: Vi t chu ng trình VB hi n thông báo “Welcome to VB.NET” trên Label. Trên Form có nút Display hi n th thông báo, Clear xoá thông báo và Exit thoát kh i ch ng trình. Hu ng d n: Display: khi nút ưc nh n gán Label1.text=“Welcome to VB.NET” Clearn: Khi nút ưc nh n gán cho label chu i r ng “” Exit: Khi nút ưc nh n gán l nh Me.Close() Bài 2: Vi t chu ng trình VB khi nh n nút s hi n thông báo “Welcome to VB.NET” trên textbox. Trên Form có 4 nút Display hi n th thông báo, Edit ch nh s a n i dung, Clear xoá thông báo và Exit thoát kh i ch ng trình. Hu ng d n: Display: khi nút ưc nh n gán Textbox1.text=“Welcome to VB.NET” Edit: khi nút ưc nh n gán TextBox1.Focus() Clearn: khi nút ưc nh n gán cho text chu i r ng “” Exit: khi nút ưc nh n gán l nh Me.Close() Bài 3: Vi t chu ng trình VB l p giao di n th c hi n phép c ng tr 2 s nh p t textbox. Hu ng d n: To 3 textbox và 2 button Cng: TextBox3.Text = Val(TextBox1.Text) + Val(TextBox2.Text) Tr : TextBox3.Text = Val(TextBox1.Text) - Val(TextBox2.Text) Bài 4: Vi t chu ng trình VB l p giao di n th c hi n phép nhân chia 2 s nh p t textbox. Hu ng d n: tươ ng t Bài 3 d u nhân là * , chia là / Bài 5: Vi t chu ng trình VB l p giao di n nh p vào 2 c nh c a hình ch nh t. Tính chu vi và di n tích. Hu ng d n: tươ ng t Bài 3 35
  36. Bài 6: Vi t chu ng trình VB l p giao di n nh p bán kính R. Tính chu vi hình tròn, di n tích hình tròn. Hu ng d n: Chu vi = 2 R, Di n tích = R 2 Bài 7: Vi t chu ng trình VB l p giao di n nh p bán kính R. Tính di n tích hình c u, th tích hình c u. Hu ng d n: Di n tích = 4 R 2, Th tích = 4/3 R 3 Bài 8: Vi t chu ng trình VB l p giao di n nh p vào 3 c nh c a tam giác. Tính chu vi và di n tích. Hu ng d n: Chu vi = (a+b+c)/2 Di n tích= p( p − a)( p − b)( p − c) Bài 9: Vi t chu ng trình VB l p giao di n nh p vào 2 Textbox có c ch và màu s c khác nhau. Hu ng d n: SV thi t l p thu c tính Fontsize và Fontcolor cho textbox. Bài 10: Vi t chu ng trình VB l p giao di n nh p vào 2 Label có c ch và màu s c khác nhau. Hu ng d n: tươ ng t bài 9. 36
  37. CHU ƠNG III BI N VÀ C U TRÚC L NH TRONG VB NET Mc ích – Yêu c u Sau khi hc xong ch ng này sinh viên n m uc: - Các ki u d li u c b n và cách khai báo bi n, h ng - Không gian tên mi n - Các phép toán c s và các hàm d ng s n - Cu trúc l nh r nhánh, l nh l p - S d ng m ng - S d ng message box - nh th i timer - Combobox, Listbox, Menu S ti t lên l p: 15 Bng phân chia th i lu ng STT NI DUNG S TI T 1 Các ki u d li u c b n v à cách khai báo bi n, h ng 1 2 Không gian tên mi n 1 3 Các phép toán c s và các hàm d ng s n 2 4 Cu trúc l nh r nhánh, l nh l p 3 5 S d ng m ng 1 6 S d ng MESSAGE BOX 2 7 nh th i timer 2 8 Combobox, Listbox 1 9 Menu 2 Tr ng tâm bài gi ng - Bi t cách s d ng các ki u d li u trên VB NET. - S d ng c các phép toán và l nh. - Bi t s d ng m ng, message box, timer, Combobox, Listbox, Menu 37
  38. 3.1 CÁC KI U D LI U C Ơ B N (xem [4 tr 174]) 3.1.1 Các ki u s nguyên Ki u d li u Kích th c Vùng giá tr (data type) (byte) Byte 1 0 n 255 Short 2 -32.768 n 32.767 Integer 4 -2.147.483.648 n 2.147.483.647 -9.223.372.036.854.775.808 n Long 8 9.223.372.036.854.775.807 3.1.2 Các ki u s th c Ki u d li u Kích th c Vùng giá tr (data type) (byte) -3,402823 x 10 38 n -1,401298 x 10 -45 i v i s âm Single 4 1,401298 x 10 -45 n 3,402823 x 10 38 i v i s d ng -1,79769313486231 x 10 308 n -4,94056445841247 x 10 -324 i v i s âm Double 8 4,94056445841247 x 10 -324 n -1,79769313486231 x 10 308 i v i s d ng 3.1.3 Ki u kí t (character) và ki u chu i (string) Ki u d li u Kích th c Vùng giá tr Ghi chú (data type) (byte) Char 2 Ký t Lu tr m t ký t String 10 bytes+(2* Lên n 2 t ký t Lu tr các chu i v n b n 38
  39. string length) 3.1.4 Ki u lu n lý (boolean) Kích th c Ki u d li u (data type) Vùng giá tr (byte) Boolean 2 True / False 3.1.5 Ki u ngày (date) Kích th c Ki u d li u (data type) Vùng giá tr (byte) Date 8 01/01/100 n 31/12/9999 3.2 KHAI BÁO H NG (xem [4 tr 175]) Hng s là giá tr không i t i m i th i im khi ch y ch ng trình. H ng c ng ch a giá tr gi ng nh bi n nh ng không t n t i khái ni m gán l u giá tr m i cho h ng. H ng s c khai báo b ng t khóa Const . Ng i l p trình có th nh ngh a m t tên có giá tr là h ng b ng cách khai báo theo m t trong hai d ng sau: Const TenHang=GiaTriHang As KieuDuLieuCuaHang Const TenHang As KieuDuLieuCuaHang=GiaTriHang Trong ó: - Const và As: t khoá - TenHang: do ng i l p trình t tu ý. - GiaTriHang: là m t giá tr s hay chu i c th nào ó. - KieuDuLieuCuaHang: ki u d li u c a giá tr hng. Ví d : Const PI=3.1415 As Double Const DSN As String = “Random” Trong ó: - Const và As: t khoá - PI và DSN: tên h ng, do ng i l p trình t. - 3.1415 là giá tr h ng s , Random là chu i ký t . 39
  40. - Double và String: các ki u d li u c a giá tr hng. 3.3 KHAI BÁO BI N (xem [4 tr 173]) Bi n là m t vùng nh c c p phát k t khi bi n c khai báo, l u tr thông tin do ng i dùng nh p ho c l u tr giá tr t m th i trong quá trình x lý hay k t qu x lý. M i bi n thu c m t ki u d li u nh t nh. Phi khai báo bi n tr c khi g i tên bi n. Cú pháp Dim TenBien As KieuDuLieu VB.NET cho phép v a khai báo bi n v a kh i t o giá tr u cho bi n: Dim TenBien As KieuDuLieu = GiaTriDauCuaBien Ví d : Dim HoTen As String Dim Max As Integer = 100 Tm v c c a bi n V trí khai báo bi n thu c ph m vi nào thì bi n ch có giá tr trong ph m vi ó. Ví d , bi n c khai báo trong Sub thì bi n ch có giá tr s d ng khi ch y Sub. Khi k t thúc ch y Sub, bi n không còn giá tr cho các dòng l nh bên ngoài Sub (bi n c c b ). Nu v trí khai báo bi n ngoài các Sub, lúc này, bi n có giá tr trên toàn b ch ng trình k c trong Sub (bi n toàn c c). 3.4 LÀM VI C V I NAMESPACE (xem [3 tr 284]) 3.4.1 Khái ni m Namspaces c s d ng t ch c các i t ng c nh ngh a trong m t assembly. Namspace cho phép b n t ch c phân c p các i t ng, c u trúc phân c p là vi c nhóm các i t ng t ng t nhau, d truy c p. VS.NET dùng Namespace s p t các Classes cho th t theo nhóm, lo i. Namespaces c declared v i m t cu trúc gi ng nh sau: Namespace Vovisoft Public Class TheClass Public Sub Greeting() MessageBox.Show("Hello world", MsgBoxStyle.Information, "TheClass") End Sub End Class End Namespace Ví d v namespace : 40
  41. Trong h th ng folder và file th vi n c a Windows, th nh tho ng ta b t g p nhi u folder hay file trùng tên nh ng l i n m hai v trí khác nhau trên h th ng nh folder Temp xu t hi n trong C:\ và c trong folder Windows. Khi mu n nh c n folder Temp nào ta c n ch rõ ng d n n folder ó nh C:\Temp hay C:\Windows\Temp. T ng t , tránh xung t gi a các th vi n (các l p) cùng tên trong h th ng th vi n, .NET s d ng khái ni m Namespace. M i namespace t ng tr ng cho m t vùng không gian riêng bi t, có th phân thành c p theo ph m vi r ng hay h p. Khi khai báo m t th vi n, c n khai báo các c p vùng không gian ch a th vi n ó, vùng có ph m vi r ng h n s c khai báo tr c r i mi khai báo n vùng h p h n và cu i cùng là khai báo n tên th vi n c n dùng. Mu n nói n b t c Class, Structure, hay th gì c declared bên trong m t Namespace End Namespace block ta ph i dùng tên Namespace tr c. Thí d : Private myObject As Vovisoft.TheClass Mt source file có th ch a nhi u Namespaces, và bên trong m i Namespace l i có th có nhi u Classes. Ngoài ra, Classes thu c v cùng m t Namespace có th n m trong nhi u files khác nhau trong m t VB.NET project. Thí d ta có m t source file vi code nh sau: Namespace Vovisoft Public Class TheClass ' Code End Class End Namespace Và m t source file khác trong cùng project v i code: Namespace Vovisoft Public Class TheOtherClass ' Code End Class End Namespace Vy thì trong Namespace Vovisoft ta có hai Classes TheClass và TheOtherClass . Lu ý, m c nh Root Namespace ca m t VB.NET project là tên c a project y. Khi ta dùng Namespace block structure là chúng ta ang thêm m t t ng tên vào Root Namespace. Do ó, trong thí d trên n u tên project là MyProject thì, t bên ngoài project y, ta có th declare mt variable nh sau: Private myObject As MyProject.Vovisoft.TheClass 3.4.2 Các namespace chính c a .NET 41
  42. NAMESPACE MC ÍCH System.CodeDOM Ch a các l p bi u di n tài li u mã ngu n. System.Collection Ch a các l p ch a c u trúc d li u d ng t p h p nh mng, danh sách, hàng i. System.Configuration Ch a các l p x lý thông tin c u hình .NET Framework. System.Data Ch a các l p h tr d li u nh p vào t ngu n nh ADO.NET. System.Diagnostics Ch a các l p ch n oán g l i trong khi t ng tác v i h th ng. System.Directory.Services Ch a các l p d ch v th m c cung c p kh n ng giao ti p v i h th ng Active Directory. System.Drawing Ch a các l p h tr ho c a GDI. System.Globalization Ch a các l p h tr kh n ng qu c t hoá nh ngày, gi , ti n t , System.IO Ch a các l p h tr thao tác xu t nh p. System.Management Ch a các l p qu n lý giao di n v i d ch v thi t b c a Windows. System.Messaging Ch a các lp s d ng g i và nh n thông ip qua hàng i. System.NET Ch a các l p th c hi n thao tác x lý m ng. System.Reflection Ch a các l p truy v n kh n ng m t i t ng. System.Runtime Ch a các l p g i t ng tác v i mã assemmbly, các i tng COM và các i t ng xa nh InteropServices và Remoting. System.Security Ch a các l p x lý b o m t và mã hoá. System.Text Ch a các l p x lý kí t ASCII, Unicode, UTF-7, UTF- 8. System.Timers Ch a các l p h tr s ki n m th i gian. 42
  43. System.Web Ch a các l p h tr truy xu t web. System.Windows.Form Ch a các l p t o c a s giao di n form. System.XML Ch a các l p x lý d li u XML. 3.4.3 Cách n p namespace vào b ng tham chi u (Reference) c a project Tr c khi s d ng namespace nào c n ki m tra xem namespace ó ã c add vào reference ch a, b ng cách: - Trong Solution Explorer , kích ph i tên solution / Properties  hp tho i / Ch n thành ph n References . - Danh sách các reference ã add và danh sách các namespace ã import vào VB.NET n m bên ph i h p tho i. ánh d u check vào các namespace nào mu n dùng trong project. Nu không th y namespace trong danh sách này, ta th c hi n add namespace vào reference nh sau: - Trong Solution Explorer , kích ph i tên solution / Add reference  hp tho i. - Ti th .NET / ch n namespace mu n add trong danh sách / Kích OK . 3.4.4 Cách khai báo namespace t khai báo namespace trên t t c các dòng l nh khác trong ch ng trình. Cú pháp : Imports namespace Ví d : mu n v c a s form ch console c n imports namespace System.Windows.Form nh sau: Imports System.Windows.Form 3.4.5 Namespace m c nh System là namespace m c nh c s d ng dù ta không khai báo trong project b ng t khoá Imports. Gi s , mu n truy xu t th vi n SoundPlayer thay vì ta vi t System.Media.SoundPlayer thì ta có th vi t Media.SoundPlayer (không c n vi t system. phía tr c) 3.4.6 t bí danh cho namespace Khi c n l p l i nhi u l n tên c a m t namespace quá dài mà trong ch ng trình thì ta có th rút ng n tên namespace ó b ng cách gán bí danh cho nó lúc import. Imports BiDanh=TenNamespaceGoc Các dòng l nh truy xu t n namespace này sau ó s dùng bí danh thay th namespace. 43
  44. Ví d : Imports ChoiNhac=System.Media Nh ta ã bi t, th vi n SoundPlayer thu c System.Media. Thay vì ta vi t System.Media. SoundPlayer thì ChoiNhac. SoundPlayer. Khi c khai báo bí danh, u tiên c a namespace này tr nên th p h n các namespaces c khai báo t ng minh. 3.5 CÁC PHÉP TOÁN C Ơ S (xem [2 tr 42]) 3.5.1 Phép gán TenBien = BieuThuc Sau khi phép gán c th c hi n thì giá tr TenBien s b ng v i giá tr BieuThuc. 3.5.2 Toán t tính toán S nguyên + : c ng - : tr * : nhân / : chia và làm tròn \ : chia nguyên, k t qu là s nguyên Mod : chia d ^ : lu th a S th c + : c ng - : tr * : nhân / : chia 3.5.3 Toán t n i chu i Chuoi1 & Chuoi2 Ví d : S = “Visual” & “ “ & “Basic” S = S & 1 => S = “Visual Basic1” 44
  45. 3.5.4 Toán t tính toán vi t rút g n += : c ng b ng vi t X += 2 t ng ng v i X = X + 2 -= : tr b ng vi t X -= 2 t ng ng v i X = X - 2 *= : nhân b ng vi t X *= 2 t ng ng v i X = X * 2 &= : n i chu i b ng vi t X &= “A” t ng ng v i X = X & “A” ^= : lu th a b ng vi t X ^= 2 t ng ng v i X = X ^ 2 3.5.5 Toán t so sánh = : b ng > : l n h n : khác >= : l n h n ho c b ng <= : nh h n ho c b ng 3.5.6 Toán t lu n lý AND, OR, NOT Bi u th c Kt qu True And True True False And True False True And False False False And False False True Or True True False Or True True True Or False True False Or False False Not True False Not False True 45
  46. 3.6 CÁC HÀM D NG S N (xem [2 tr 46]) 3.6.1 Hàm chuy n i ki u d li u Hàm Mô t CBool Chuy n thành mt giá tr Boolean. T t c các giá tr là False hay 0 s 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 mt. 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 chuy i, thì ch có ký t u tiên c chuy n. Cdate Chuy n thành m t ngày (Date) CDbl Chuy n thành giá tr Double Cint Chuy n thành m t s Integer. 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 d ng ki u Short Date Ctype Chuy n thành b t k ki u nào. Cú pháp c a hàm này h i khác so v i các hàm trên. NewVariable = Ctype(OldVariable, NewType) OldVariable là bi n ch a giá tr c n chuy n, NewVariable là bi n l u giá tr sau khi chuy n i, Newtype là ki u d li u m i c n chuy n sang. 3.6.2 Hàm toán h c Các hàm này c cung c p trong namespace System.Math . Abs(n) : tr v tr tuy t i c a n Atan(n) : tr v Artang c a n (tính b ng radian) Cos(n) : tr v cos c a góc n ( n tính b ng radian) 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^n 46
  47. Sign(n) : tr v -1 n u n nh h 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 3.6.3 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 Left(S,N ) : tr v N ký t bên trái c a chu i S. S= Left(“Hello” ,2) => S=”He” Right(S,N) : tr v N ký t bên ph i c a chu i S. S=Right(“Hello” ,2) => S=”lo” Mid(S,N,M) : tr v M ký t gi a chu i S , l y t v trí N. S=MID(“Hello”,2,3) => S=”ell”. Lcase(S) : chuy n t t c các ký t trong chu i thành ch th ng. S=Lcase(“Hello”) => S=”hello”. UCase(S) : chuy n t t c các ký t trong chu i thành ch in. S=UCase(“Hello”) => S=”HELLO”. Ltrim(S) : b t t c các kho ng tr ng ng tr c chu i. S=Ltrim(“ Hello”) => S=”Hello” Rtrim(S) : b t t c các kho ng tr ng ng sau chu i. S=Rtrim(“Hello ”) => S=”Hello” Trim(S) : b t t c các kho ng tr ng ng tr c và sau chu i. S=Trim(“ Hello ”) => S=”Hello” 3.6.4 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 tham s truy n vào c hi u là m t ngày 47
  48. IsNumeric : tr v True n u tham s truy n vào c hi u là m t s IsObject : tr v True n u tham s truy n vào là ki u .t ng nào ó TypeName : tr v tên ki u d li u c a tham s Now : tr v ngày và 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 VI T S KI N CLICK CHO I T NG BUTTON (xem [2 tr 8]) Khi thi t k xong giao di n form, ti n hành vi t s ki n cho các i t ng trên form. Thông th ng b t u vi t s ki n Click cho các i t ng Button. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ‘Code ch ươ ng trình th c hi n công vi c nào ó. End Sub Trong ó: - Sub, End Sub: là các t khoá óng và m on mã c a Sub x lý s ki n khi ta kích nút nh n. - TenSuKien: Click. 3.8 VI T DÒNG CHÚ THÍCH (COMMENT LINE) (xem [2 tr 8]) Dòng chú thích c dùng v i m c ích giúp ng i xem ch ng trình có th hi u c ng i l p trình mu n vi t gì trong dòng mã ó. Dùng d u nháy n t tr c n i dung m t dòng v n b n chú thích. Ví d : Dim Tuoi As Byte ‘ Khai báo bi n Tu i, ki u s nguyên ‘ không d u, ph m vi t 0-255 3.9 THU C TÍNH VÀ PH Ơ NG TH C C A I T NG (xem [3 tr 298])  Thu c tính (property): là các tính ch t mô t m t i t ng nh : name, text, color, Cú pháp: . = 48
  49. Ví d : textbox1.text=”Visual Basic” Các thu c tính thông d ng c a các i t ng: - Name: tên phân bi t v i i t ng khác. - Caption: Tiêu c a i t ng. - Font: qui nh font ch cho i t ng. - BackColor: màu n n c a i t ng. - Height, Width: chi u cao, r ng c a i t ng. - Left, Top: v trí t biên trái và biên trên n góc trên trái c a i t ng. - Visible: hi n th (true) hay không hi n th (false) i t ng khi ch y ng d ng.  Ph ng th c (method) là m t hành ng nào ó nh : close, open, show, Cú pháp . Ví d : Form1.show  S ki n (event): ho t ng b ng c a i t ng nh x y ra khi kích chu t, 3.10 CÚ PHÁP THAM CHI U I T NG (xem [3 tr 298]) Trong khi thit k t ng i t ng trên n n Form, ta ã nh các thu c tính cho chúng trong c a s Properties. N u mu n thay i giá tr c a m t s thu c tính này, ta hoàn toàn có th th c hi n c khi vi t mã. Tr c tiên, ta gõ tên i t ng ang c n x lý, gõ d u ch m  danh sách thu c tính và ph ng th c c a i t ng, ta ch n tên thu c tính / tên ph ng th c thích h p nh t. Ví d : tham chi u n thu c tính Text ca TextBox1 trên Form. Hình 3.1: Ch c n ng AutoComplete c a VB.Net VB.Net có ch c n ng AutoComplete giúp ng i l p trình tìm nhanh n thành ph n ca i t ng c tham chi u tr c d u ch m (.) . 49
  50. Khi mu n tham chi u n m t i t ng trên màn hình, ta s d ng cú pháp sau : - Me : chính là Form. - Me.(tên iu khi n) : tham chi u n i t ng c n iu khin hi n có trên Form. - Me.(tên iu khi n).(tên thu c tính) : tham chi u n thu c tính c a i t ng c n iu khi n trên Form. Có th b t khóa Me khi tham chi u n iu khi n trên Form ó. Cú pháp : Name.TenPhuongThuc ho c Name.TenThuocTinh c bi t, n u i t ng x lý là form thì thay vì gõ formname thì VB.NET dùng t Me . Ví d : Me.Close() ‘ óng form hi n hành 3.11 VI T L NH R NHÁNH (xem [4 tr 178]) Dng 1 Nhóm l nh có nhi u 2 dòng l nh tr lên: IF iu ki n THEN ‘N u iu ki n úng thì Nhóm l nh ưc th c hi n Nhóm l nh END IF Nu nhóm l nh ch có m t l nh: IF iu ki n THEN Mt dòng lnh Ví d : If diem < 5 Then Label1.Text = "HS Y u Dng 2 IF iu ki n THEN ‘N u iu ki n úng thì Nhóm l nh 1 ưc th c hi n Nhóm l nh 1 ELSE ‘Ng ưc l i ( iu ki n không úng) thì Nhóm l nh 2 Nhóm l nh 2 ‘ưc th c hi n END IF Ví d : If diem < 5 Then Label1.Text = "HS Y u" Label2.Text = "C n C G ng" 50
  51. Else Label1.Text = "HS trên TB" Label2.Text = "Phát Huy Thêm " End IF Nu nhóm l nh 1 và 2 ch có m t dòng l nh thì: IF iu ki n THEN Lnh 1 ELSE Lnh 2 Ví d : If diem 5 And diem = 7 And diem < 8 Then Label1.Text = "HS Khá" 51
  52. ElseIf diem >= 8 Then Label1.Text = "HS Gi i" End If Dng 4 – SELECT CASE Khi có quá nhi u iu ki n ch n l a, n u s d ng c u trúc r nhánh IF thì câu lnh tr nên dài dòng, lúc này, nên dùng c u trúc Select Case thay th . SELECT CASE TENBIEN CASE iu ki n 1 Lnh 1 CASE iu ki n 2 Lnh 2 CASE iu ki n (n-1) Lnh (n-1) CASE ELSE ‘ n u các iu ki n 1  iu ki n (n-1) không tho thì Lnh n ‘ th c hi n L nh n END SELECT Ví d : Vi t l i VD trên dùng l nh Select Case Dim diem As Double diem = Val(TextBox1.Text) Select diem Case 0 To 4.9 Label1.Text = "HS Y u" Case 5 To 6.9 Label1.Text = "HS Trung Bình" Case 7 To 7.9 Label1.Text = "HS Khá" Case 8 To 10 Label1.Text = "HS Gi i" End Select 3.12 B Y L I NGO I L PHÁT SINH B NG TRY CATCH (xem [3 tr 321]) 52
  53. Cú pháp : TRY Kh i l nh c n x lý nh ng có kh n ng sinh l i trong khi th c hi n CATCH EX AS EXCEPTION Kh i l nh s c th c hi n n u l i th c s x y ra trong TRY END TRY Ví d : Dùng l nh Try .Catch b y l i khi truy xu t s ph n t không có trong m ng Dim Array() As Double = {100, 100.39, 100.78, 101.17, 101.56, 101.95, 102.34, 102.73, 103.12, 103.51} Dim x As Integer x = Val(TextBox1.Text) Try Label1.Text = Array(x) Catch MsgBox("Index V t Quá Giá Tr C a M ng") End Try 3.13 CÁC C U TRÚC L P THÔNG TH NG (xem [4 tr 184]) FOR NEXT: l p theo s l n c ch nh Cú pháp 1 : FOR BienDem=GiaTriDau TO GiaTriCuoi Nhóm l nh 1 EXIT FOR ‘ thoát kh i vòng l p FOR ngay l p t c không quan tâm n giá tr u cu i (EXIT FOR không b t bu c ph i có trong c u trúc). Nhóm l nh 2 NEXT Cú pháp 2 : FOR BienDem=GiaTriDau TO GiaTriCuoi STEP m Nhóm l nh 1 EXIT FOR Nhóm l nh 2 53
  54. NEXT Trong ó: - BienDem có th c khai báo ngay trong vòng For (t m v c c a BienDem là vòng For). - STEP m là thì t ng m n v cho BienDem trong m i l n l p, n u không có STEP thì m c nh m i l n l p s t ng BienDem lên 1 n v . - EXIT FOR thoát vòng l p gi a ch ng mà không c n th c hi n ti p nhóm lnh 2. Ví d : Tính giai th a c a s nh p vào Textbox và hi n ra Label, 1 nút nh n th c hi n lnh. Dim bien As Integer bien = Val(TextBox1.Text) For i = 1 To bien - 1 bien = bien * i Next Label1.Text = bien Dng 5 – WHILE: ki m tra iu ki n úng r i th c hi n Cú pháp : WHILE iu ki n tho Nhóm l nh 1 EXIT WHILE ‘ thoát kh i vòng l p WHILE ngay l p t c không quan tâm n iu ki n (EXIT WHILE không b t bu c ph i có trong c u trúc). Nhóm l nh 2 END WHILE Ví d: Tính giai th a c a s nh p vào Textbox và hi n ra Label, 1 nút nh n th c hi n lnh. Dim bien, i, y As Integer bien = Val(TextBox1.Text) i = 1 y = bien 54
  55. While i < y bien = bien * i i = i + 1 End While Label1.Text = bien Dng 6 – DO LOOP: th c hi n r i m i ki m tra iu ki n Cú pháp 1 : khi iu ki n tho là True thì ti p t c th c hi n nhóm l nh trong DO DO Nhóm l nh 1 EXIT DO ‘ thoát kh i vòng l p DO ngay l p t c không quan tâm n iu ki n (EXIT DO không b t bu c ph i có trong c u trúc). Nhóm l nh 2 LOOP WHILE iu ki n tho Ví d : Tính giai th a c a s nh p vào Textbox và hi n ra Label, 1 nút nh n th c hi n lnh. Dim bien, i, y As Integer bien = Val(TextBox1.Text) i = 1 y = bien Do bien = bien * i i = i + 1 Loop While i < y Label1.Text = bien Cú pháp 2 : khi iu ki n d ng là False thì ti p t c th c hi n nhóm l nh trong DO DO Nhóm l nh 1 EXIT DO ‘ thoát kh i vòng l p DO ngay l p t c không quan tâm n iu ki n (EXIT DO không b t bu c ph i có trong c u trúc). Nhóm l nh 2 LOOP UNTIL iu ki n d ng 55
  56. Ví d : Tính giai th a c a s nh p vào Textbox và hi n ra Label, 1 nút nh n th c hi n lnh. Dim bien, i, y As Integer bien = Val(TextBox1.Text) i = 1 y = bien Do bien = bien * i i = i + 1 Loop Until i = y Label1.Text = bien 3.14 M NG (xem [4 tr 187]) Khái ni m Mng Là m t dng t p h p các bi n cùng tên, cùng ki u d li u nh ng khác ch s. Khai báo m ng c nh s ph n t Dùng khai báo m ng khi ta bi t tr c s ph n t c nh c n dùng trong m ng. Dim TenMang (SoPhanTuCuaMang) As KieuDuLieu Ví d : Dim array(5) As Integer ‘Khai báo m ng 1 chi u g m 6 ph n t t Array(0) - Array(5) ki u d li u là s Integer Khai báo m ng ng (không c nh s ph n t ) Dim TenMang ( ) As KieuDuLieu Khai báo l i s ph n t m ng khi có s thay i ReDim TenMang(n) Ví d : Dim array() As Integer ‘Khai báo m ng ng ReDim array(8) array(5) = 8 Lúc này, s ph n t c c a m ng s c xoá s ch thay vào ó s ph n t m i. Tr ng h p mu n khai báo thêm s ph n t m i trong khi v n gi các ph n t c thì dùng thêm t khoá Preserve tr c tên m ng: ReDim Preserve TenMang (n) 56
  57. Ví d v khai báo và truy xu t m ng 1 chi u Dim Array() As Double = {100, 100.39, 100.78, 101.17, 101.56, 101.95, 102.34, 102.73, 103.12, 103.51} Dim x As Integer x = Val(TextBox1.Text) Label1.Text = Array(x) Ví d v khai báo và truy xu t m ng 2 chi u Dim Array(,) As Integer = {{10, 11, 12, 13, 14, 15}, {20, 21, 22, 23, 24, 25}} Dim x, y As Integer x = Val(TextBox1.Text) y = Val(TextBox2.Text) Label1.Text = Array(x, y) End Try Ví d v khai báo và truy xu t m ng 3 chi u Dim array(3, 3, 3) As Integer array(1, 1, 1) = 8 3.15 CÁC LO I MESSAGE BOX (xem [4 tr 306]) Message Box là d ng b ng báo m i khi máy c n giao ti p v i ng i dùng, có nhi u lo i Help (tr giúp), Question (h i Y/N), Critical (có v n nghiêm tr ng), Exclamation (h i Y/N/C) và Information (cung c p thông tin) Message Box c ng có th là m t form do ng i dùng vi t và xu t di d ng dialog. M i lo i có m t s giá tr hng t ng ng nh OK, Retry, Cancel, Yes, Abort, No, Inorge N u MsgBox lo i có sn thì c n quan tâm n thu c tính MsgBoxStyle và MsgBoxResult, lo i t vi t thì quan tâm n DialogResult. Cú pháp : MsgBox(“n i dung chính”, lo i MsgBox, “tiêu c a h p tho i”) 1. Dng h i Y/N MsgBox("B n mu n thoát kh i ch ng trình?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, "Chú ý") 57
  58. Hình 3.2 Ta có th dùng hàm MsgBoxResult bi t ng i dùng ch n nút nào. Ví d nh khi ng i dùng ch n Yes s óng Form l i, ch n NO không làm gì c ta vi t code nh sau: If MsgBox("B n mu n thoát kh i ch ng trình?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, "Chú ý") = MsgBoxResult.Yes Then Me.Close() 2. Dng báo nguy hi m A/R/I MsgBox("File ã b l i, b qua hay k t thúc?", MsgBoxStyle.Critical Or MsgBoxStyle.AbortRetryIgnore, "Chú Ý") Hình 3.3 3. Dng kh ng nh ch n hay b qua Y/N/C MsgBox("B n mu n t o 1 Form m i?", MsgBoxStyle.Exclamation Or MsgBoxStyle.YesNoCancel, "Chú Ý") Hình 3.4 4. Dng nh c nh c n làm gì R/C MsgBox("Ngõ vào c a IC không c th n i!", MsgBoxStyle.Information Or MsgBoxStyle.RetryCancel, "Chú Ý") 58
  59. Hình 3.5 5. Dng t vi t To m t form m i và thi t k tu thích sao cho form có hình th c nh m t MsgBox nh sau: Hình 3.6 Thi t l p thu c tính Properties nh sau - Button1.DialogResult ch n Yes - Button2.DialogResult ch n No - Lu và óng form2 l i. - Tr v c a s form1 ban u ly 1 nút nh n vi t câu l nh hi n th Form2. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If Form2.ShowDialog = Windows.Forms.DialogResult.No Then Me.Close() End Sub 3.16 V CÁC HÌNH C Ơ B N VÀ X LÝ FONT (xem [4 tr 156]) SV t nghiên c u ph n ho , t p trung vào v hình ch nh t, hình elip và v ch . Th c hi n v hình 3.7 Gi ý Hình 3.7 59
  60. - Namespace ho 2D: System.Drawing.Drawing2D - Namespace x lý nh: Imaging - Namespace x lý ch : System.Drawing.Text 3.17 NH TH I TIMER (xem [3 tr 134]) - Ch n công c Timer kéo vào n n form  bi u t ng Timer t i áy c a c a s thi t k form. Xét các thu c tính: Enable : True (ho t ng)/ False (không ho t ng). Có hai ph ng th c t ng ng v i giá tr True khi vi t code: Timer.Start() ho c Timer.Enable=True. Ta ch n True timer ho t ng. Interval : là kho ng th i gian m i l n thay i khi ng h th c hi n m (s ki n Tick) c tính b ng mili-giây (1/1000 giây). N u mu n ng h thay i m i giây thì t giá tr Interval=1000. - Vì Timer không xu t hi n trên n n form nên ph i dùng m t i t ng Label làm n i hi n th ch s c a ng h khi th c hi n s ki n Tick. Ch n công c Label kéo vào n n Form. - Kích úp vào i t ng TmDongHo  sinh on mã c a s kin Tick. Vit thêm dòng mã sau Ví d 1: Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Label1.Text = String.Format("{0}:{1}:{2}", Now.Hour, Now.Minute, Now.Second) End Sub Hình 3.8 Chú thích dòng mã 60
  61. - Các hàm Now.Hour(), Now.Minute(), Now.Second() l y giá tr gi , phút, giây hi n hành gán l n l t vào các i s {0}, {1}, {2} trong hàm Fomat. Ví d 2: Vi t ch ng trình s d ng ng t Timer khi ta nh n nút s m lùi t 99 v 0 hi n th trên Label. - M 1 Form m i lên t vào 1 Label, 1 nút nh n và 1 timer. - Khai báo x là bi n m ki u integer, vì ta mu n x là bi n toàn c c nên trên u sau khai báo Public Class Form1 Hình 3.9 Public Class Form1 Dim x As Integer ‘khai báo x là bi n toàn c c - Vi t l nh cho timer Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick x = x - 1 If x < 0 Then x = 100 Label1.Text = x End Sub - Vi t l nh cho Button Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Timer1.Interval = 1000 Timer1.Enabled = True x = 100 End Sub 61
  62. Ví d 3: Vi t ch ng trình Delay khi ta nh n nút s m lùi t 99 v 0 hi n th trên Label. - M 1 Form m i lên t vào 1 Label, 1 nút nh n và 1 timer. - M c a s vi t code cho Form lên, t o 1 ch ng trình con Delay t trong Class Form Hình 3.10 Private Sub DELAY(ByVal X As Double) Timer1.Interval = X Timer1.Enabled = True Do Application.DoEvents() Loop Until Timer1.Enabled = False End Sub - Nh p vào bi u t ng Timer trên Form vi t l nh cho s ki n ng t Timer Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Timer1.Enabled = False End Sub - Vi t l nh cho Button Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim x As Integer x = 100 For i = 0 To 100 x = x - 1 Label1.Text = x 62
  63. DELAY(1000) Next i End Sub 3.18 IU KHI N TH T CH N THEO Ý MU N B NG PHÍM TAB (xem [3 tr 511]) Thông th ng, th t các i t ng trên form không ph thu c vào v trí t chúng ph thu c vào giá tr c a thu c tính TabIndex c a t ng i t ng. Giá tr TabIndex c ánh t ng d a theo th t lúc kh i t o i t ng, i t ng c t o u tiên trên n n form có giá tr TabIndex là 0, i t ng có th t t o k ti p s c cng 1 n v vào giá tr thu c tính TabIndex. thay i th t ch n theo ý mu n khi nh n phím Tab, ta thay i giá tr c a thu c tính TabIndex qua m t trong hai cách sau: Cách 1 : Ch n lên i t ng, thay i giá tr thu c tính TabIndex trong Properties Window. Cách 2 : Menu View / Tab Order  các s th t c a m i i t ng trên n n form / ch n và s a tr c ti p các s th t trên t ng i t ng. Hình 3.11 Lưu ý: Các giá tr s th t ch ưc thay i t 0 (t ng s i t ưng có trên n n form tr i 1). Các i t ưng lo i Lable s không ưc iu khi n b ng phím Tab nh ư nh ng i t ưng lo i khác. 3.19 CÁC S KI N KHÁC NGOÀI S KI N CLICK (xem [3 tr 34]) 63
  64. S ki n Click c a Button là s ki n th ng dùng nh t i v i m t form. Ngoài ra còn r t nhi u s ki n khác n a nh Change, Load, Enter, Paint T ng ng v i m i lo i control thì có các s ki n khác nhau. Khi c n vi t s ki n khác ngoài Click ta làm nh sau: trang VB Design ta nh p ph i chu t vào Form ch n View code, nhìn phía trên c a s code ta th y m c Form1 Events mc này cho ta ch n i t ng c n vi t code, m c k bên là Declarations ch n s ki n. Ví d : Vi t code cho s ki n Mouse di chuy n trên Label1 Hình 3.12: Cách ch n code s ki n MouseMove Sau khi ch n Label1 m c bên trái, t i m c bên ph i ta ch n s ki n MouseMove on code sau hi n ra, ta chèn l nh c n x lý vào phía trên ch Endsub Ví d : Thoát kh i ch ng trinh khi di chuy n chu t trên Label1 Private Sub Label1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseMove Me.Close() ‘ph n t vi t End Sub 3.20 CONTROL COMBOBOX (xem [4 tr 381]) ComboBox là m t lo i h p có nút x , ch a nhi u giá tr ch n (m c ch n). Ti 1 th i im ch cho phép ch n m t m c ch n duy nh t. Các thu c tính c n quan tâm khi thi t k : - Name : th ng c ch n bt u b ng “ Cb ” 64
  65. - Items : nh p các m c ch n, m i m c trên 1 dòng - Text : n i dung text (n u có) s c hi n th ngay trong khung ComboBox khi ch a kích nút x . Các thu c tính và ph ng th c c n quan tâm khi l p trình: - SelectedIndex : STT c a m c ch n theo th t t trên xu ng, m c u tiên có STT = 0. - TenCombo.Items.Clear (): xoá s ch các m c ch n trong ComboBox hi n có. - Ten Combo.Items.Add (“Tên Item M i”): thêm m t m c ch n m i vào danh sách các m c ch n ang có c a ComboBox. - TenCombo.Items.Insert (y,“Tên Item M i”): thêm m t m c ch n m i vào v trí th y trong danh sách các m c ch n ang có c a ComboBox. Hình 3.13: Control ComboBox - TenCombo.Items.Count (): m s m c ch n ang có c a ComboBox. - TenCombo.Items.IndexOf (“Tên Item”): tr v v trí c a m c ch n “Tên Item” trong danh sách. N u không tìm th y thì tr v -1. - TenCombo.Items.Item (n): tr v m c ch n v trí n - TenCombo.Items.Remove (”Tên Item”) : b m c ch n Tên Item - TenCombo.Items.RemoveAt (n): b m c ch n t i v trí n - TenCombo.Items.Contains (“Tên Item”): True nu trong danh sách Combobox có m c ch n Tên Item. False nu trong danh sách không có m c ch n Tên Item. Ví d : on ch ng trình sau s add các Items COM 1 n COM 20 vào Combobox Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click For i = 1 To 20 ComboBox1.Items.Add("COM " & i) Next 65
  66. End Sub 3.21 CONTROL LISTBOX (xem [4 tr 374]) T ng t ComboBox, nh ng: - Có thêm ph ng th c b ch n m c ang c ch n: TenCombo.SelectedItems.Clear () - Không có thu c tính Text - SelectionMod : One – ti m t th i im ch ch n c m t Item; MultiExtended – cùng lúc có th ch n nhi u Item. - Name : th ng c ch n b t u b ng “Ls ” - TenListbox.Items(i).ToString : l y giá tr c a Item. Ví d 1: Vòng l p sau s thêm nh ng ph n t c a m ng Arr vào iu khi n ListBox : Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim arr() As String = {"Tí", "S u", "D n", "M o"} For i = 0 To 3 ListBox1.Items.Add(arr(i)) Next End Sub Ví d 2: Dùng c u trúc For Each duy t qua t ng ph n t trong ListBox và hi n th item c a nó trên Label: Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click For Each itm In ListBox1.Items Label1.Text = itm Next End Sub 3.22 CONTROL MENUSTRIP (xem [4 tr 323]) Kh i t o menu bar cho form Ch n công c MenuStrip th vào n n form.  xu t hi n Menu bar u form và bi u t ng 66
  67. MenuStrip áy c a c a s thi t k form. - Type Here : gõ tên cho m c ch n c a menu. Gõ kí hi u “ &” tr c kí t nào trong tên m c ch n thì kí t ó s có g ch chân. Menu c p 1 Menu c p 2 Menu c p 3 Hình 3.14: Quy ưc phân c p Menu bar - MenuItem : chèn thêm 1 m c ch n vào menu. - ComboBox : chèn thêm 1 ComboBox vào menu. - TextBox : chèn thêm 1 TextBox vào menu. - Separator : chèn thêm line phân cách gi a các m c ch n trong menu. Menu c p 2 tr i m i cho chèn separator. Thu c tính c a i t ng MenuStrip Ch n lên bi u t ng MenuStrip áy c a s thi t k form nh thu c tính: - Name : là name c a c Menu bar. - Text : hi n th nhãn c a bi u t ng MenuStrip. - Enable : cho phép / không cho phép tác ng lên Menu bar. Thu c tính c a t ng m c ch n trong Menu bar 67
  68. Ch n t ng m c ch n (MenuItem) trong Menu bar u form nh thu c tính: - Name : là name c a m c ch n. - Text : hi n th nhãn c a m c ch n. - ShortcutKey : qui nh phím t t cho m c ch n. - ShowShortcutKey : cho phép / không cho phép hi n th phím t t lên menu. - Enable : cho / không cho phép tác ng lên m c ch n. - AutoToolTip : hi n th / không hi n th ToolTip c a m c ch n. - ToolTipText : n i dung ToolTip c a m c ch n. - Image : hi n th bi u t ng ho c hình nh cho m c ch n. Vi t code cho s ki n Click m c ch n - Kích úp lên tên m c ch n t ng sinh on mã Sub – End Sub. - Vi t thêm các dòng l nh x lý khi m c ch n c kích, c n quan tâm n thu c tính Checked ca m c ch n. 3.23 CONTROL TOOLSTRIP (xem [3 tr 528]) t o m t thanh công c (ch a các công c có d ng nút) cho form, ta s d ng iu khi n ToolStrip . C ng nh MenuStrip , ToolStrip s c t chung v i vùng t các iu khi n h p tho i ( Component tray ) ng th i c ng có m t thanh công c tr ng xu t hi n trên form v i m t nút l nh m i. Nh n vào nút u tiên này trên thanh công c (n u không có nh n vào thanh công c s xu t hi n) s s xu ng m t danh sách các iu khi n có th thêm vào thanh công c gm các iu khi n sau : Hình 3.16: Các iu khi n có th thêm vào thanh công c 68
  69. ToolStrip có thu c tính Items là m t t p h p các iu khi n có trên ToolStrip . Hình 3.17: T p h p Items c a ToolStrip Các thu c tính c a ToolStrip : GripStyle Cho phép hi n th grip c a ToolStrip hay không. Có các giá tr sau : - Visible : hi nt h grip. - Hidden : n grip. Stretch Cho phép iu khi n kéo dài t u này n u kia hay không. ây là thu c tính ki u Boolean , giá tr m c nh là True . TextDirection Xác nh chi u c a ch hi n th trên ToolStrip . Mi iu khi n trên ToolStrip s có các thu c tính, ph ng th c và s ki n t ng ng vi lo i c a nó. 3.24 NH L I V TRÍ VÀ KÍCH TH C C A I T NG KHI KÍCH TH C FORM THAY I (xem [3 tr 540]) - Thu c tính .Location ca m t i t ng l y v 1 im g m 2 to Point(X,Y) . 69
  70. - Thu c tính .Size ca m t i t ng l y v kích th c chi u ngang và chi u r ng ca i t ng Size(Width,Height) . Ví D : nh l i v trí và kích th c Button Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize Button1.Location = New Point((Me.Width - Button1.Width) / 2, (Me.Height - Button1.Height) / 2) Button1.Size = New Size(Me.Width / 4, Me.Height / 4) End Sub Luy n t p trên l p Câu h i lý thuy t Câu 1: D a vào âu ch n ki u bi n? Câu 2: H ng khác bi n nh th nào? Câu 3: Khi nào s d ng message box? Câu 4: Có m y ki u s d ng message box? Câu 5: Nêu tác d ng c a Timer? Câu 6: Thu c tính Interval trong Timer có tác d ng gì? Câu 7: Thu c tính nào c a timer cho phép timer ch y? Câu 8: Mu n b t, t t timer dùng l nh nào? Câu 9: Cách dùng timer t o delay trong VB? Câu 10: M ng là gì? Cách s d ng? Câu 11: NAMESPACE là gì? Cách s d ng? Câu 12: Ki u bi n lu n lý là gì? Câu 13: Toán t lu n lý là gì? Có m y phép toán? Câu 14: L nh r nhánh g m nh ng c u trúc l nh nào? Câu 15: L nh l p g m nh ng c u trúc l nh nào? Câu 16: L nh Application.DoEvents() có tác d ng gì? Câu 17: Menu là gì? Cách t o menu? Câu 18: Nêu tác d ng c a hàm Chr( )? Câu 19: Nêu tác d ng c a hàm Asc( )? Câu 20: Nêu tác d ng c a hàm Abs( )? Câu 21: K tên các ki u d li u s nguyên Câu 22: Ki u d li u Byte có kích th c bao nhiêu? Câu 23: Ki u d li u Short có kích th c bao nhiêu? Câu 24: Ki u d li u Integer có kích th c bao nhiêu? Câu 25: Ki u d li u Long có kích th c bao nhiêu? Câu 26: K tên các ki u d li u s th c? Câu 27: Ki u d li u Single có kích th c bao nhiêu? Câu 28: Ki u d li u Double có kích th c bao nhiêu? 70
  71. Câu 29: Ki u d li u Char có kích th c bao nhiêu? Câu 30: Ki u d li u String có kích th c bao nhiêu? Câu 31: Ki u d li u lu n lý là gì? Có bao nhiêu giá tr ? Câu 32: Ki u d li u Date có kích th c bao nhiêu? Câu 33: Ki u d li u Const là gì? Câu 34: C u trúc khai báo H ng là gì? Câu 35: C u trúc khai báo Bi n là gì? Câu 36: Bi n toàn c c là gì? Câu 37: Bi n c c b là gì? Câu 38: Cách khai báo bi n toàn c c? Câu 39: Cách khai báo bi n c c b ? Câu 40: S khác nhau gi a bi n toàn c c và bi n c c b ? Câu 41: Phép gán là gì? C u trúc? Câu 42: C u trúc l nh toán t n i chu i? Câu 43: Hãy nêu toán t tính toán trên s nguyên? Câu 44: Hãy nêu toán t tính toán trên s th c? Câu 45: Hãy nêu toán t tính toán rút g n? Câu 46: Hãy nêu toán t so sánh? Câu 47: Hãy nêu các hàm chuy n i d li u c b n? Câu 48: Nêu tác d ng c a hàm Cbool? Câu 49: Nêu tác d ng c a hàm Cbyte? Câu 50: Nêu tác d ng c a hàm Cchar? Câu 51: Nêu tác d ng c a hàm Cdate? Câu 52: Nêu tác d ng c a hàm CDbl? Câu 53: Nêu tác d ng c a hàm Cint? Câu 54: Nêu tác d ng c a hàm CLng? Câu 55: Nêu tác d ng c a hàm CSht? Câu 56: Nêu tác d ng c a hàm CStr? Câu 57: Nêu tác d ng c a hàm Ctype? Câu 58: Nêu tác d ng c a hàm Cchar? Câu 59: Hãy nêu các hàm chuy n toán h c c b n? Câu 60: Nêu tác d ng c a hàm Atan(n)? Câu 61: Nêu tác d ng c a hàm Tan(n)? Câu 62: Nêu tác d ng c a hàm Cos(n)? Câu 63: Nêu tác d ng c a hàm Sin(n)? Câu 64: Nêu tác d ng c a hàm Exp(n)? Câu 65: Nêu tác d ng c a hàm Sign(n)? Câu 66: Nêu tác d ng c a hàm Sqrt(n)? Câu 67: Hãy nêu các hàm x lý chu i c b n? Câu 68: Nêu tác d ng c a hàm Len(S)? Câu 69: Nêu tác d ng c a hàm Left(S,N)? Câu 70: Nêu tác d ng c a hàm Right(S,N)? Câu 71: Nêu tác d ng c a hàm MID(S,N,M)? 71
  72. Câu 72: Nêu tác d ng c a hàm Lcase(S)? Câu 73: Nêu tác d ng c a hàm Ucase(S)? Câu 74: Nêu tác d ng c a hàm Ltrim(S)? Câu 75: Nêu tác d ng c a hàm Rtrim(S)? Câu 76: Nêu tác d ng c a hàm Trim(S)? Câu 77: Nêu tác d ng c a hàm IsArray? Câu 78: Nêu tác d ng c a hàm IsDate? Câu 79: Nêu tác d ng c a hàm IsNumeric? Câu 80: Nêu tác d ng c a hàm IsObject? Câu 81: Nêu tác d ng c a hàm TypeName? Câu 82: Nêu tác d ng c a hàm Now? Câu 83: Nêu tác d ng c a hàm Today? Câu 84: Nêu tác d ng c a hàm IsArray? Câu 85: Sub, End Sub là gì? Câu 86: Cách vi t dòng chú thích nh th nào? Câu 87: T m quan tr ng c a dòng chú thích? Câu 88: Thu c tính c a i t ng là gì? Câu 89: Ph ng th c c a i t ng là gì? Câu 90: D u ch m ng là gì? Câu 91: L nh r nhánh là gì? Câu 92: Trong VB có bao nhiêu l nh r nhánh thông d ng? Câu 93: C u trúc IF THEN có m y d ng? Câu 94: Cách dùng c u trúc IF THEN? Câu 95: Cách dùng c u trúc SELECT CASE? Câu 96: Ph ng th c b y l i trong VB? Câu 97: T i sao ph i dùng b y l i trong VB? Câu 98: Cách dùng c u trúc TRY CATCH? Câu 99: Trong VB có bao nhiêu l p thông d ng? Câu 100: K tên các c u trúc l p thông d ng Trong VB? Câu 101: Cách dùng c u trúc FOR NEXT? Câu 102: Cách dùng c u trúc FOR NEXT có STEP? Câu 103: Cách dùng c u trúc WHILE? Câu 104: C u trúc END WHILE có tác d ng gì? Câu 105: Cách dùng c u trúc DO .LOOP? Câu 106: C u trúc EXIT DO có tác d ng gì? Câu 107: C u trúc LOOP WHILE có tác d ng gì? Câu 108: C u trúc LOOP UNTIL có tác d ng gì? Câu 109: Ưu im c a M ng là gì? Câu 110: C u trúc l nh khai báo m ng nh th nào? Câu 111: C u trúc l nh khai báo m ng ng nh th nào? Câu 112: C u trúc l nh Khai báo l i s ph n t m ng nh th nào? Câu 113: C u trúc ReDim TenMang(n) có tác d ng gì? Câu 114: C u trúc ReDim Preserve TenMang(n) có tác d ng gì? 72
  73. Câu 115: Cách ch n các s ki n khác ngoài Click? Câu 116: Cách ch n các s ki n khác ngoài Click? Câu 117: Control ComboBox là gì? Câu 118: Thu c tính .Name ca Control ComboBox có tác d ng gì? Câu 119: Thu c tính . Items ca Control ComboBox có tác d ng gì? Câu 120: Thu c tính . Text ca Control ComboBox có tác d ng gì? Câu 121: Thu c tính . SelectionMod ca Control ComboBox có tác d ng gì? Câu 122: Thu c tính . SelectedIndex ca Control ComboBox có tác d ng gì? Câu 123: Thu c tính . Items ca Control ComboBox có tác d ng gì? Câu 124: C u trúc TenCombo.Items.Clear() có tác d ng gì? Câu 125: C u trúc TenCombo.Items.Add(“Tên Item Mi”) có tác d ng gì? Câu 126: C u trúc TenCombo.Items.Insert(y,“Tên Item M i”) có tác d ng gì? Câu 127: C u trúc TenCombo.Items.Count() có tác d ng gì? Câu 128: C u trúc TenCombo.Items.IndexOf(“Tên Item”) có tác d ng gì? Câu 129: C u trúc TenCombo.Items.Item(n) có tác d ng gì? Câu 130: C u trúc TenCombo.Items.Remove(”Tên Item”) có tác d ng gì? Câu 131: C u trúc TenCombo.Items.RemoveAt(n) có tác d ng gì? Câu 132: C u trúc TenCombo.Items.Contains(“Tên Item”) có tác d ng gì? Câu 133: C u trúc TenCombo.Items.Item(n) có tác d ng gì? Câu 134: Control ListBox là gì? Câu 135: C u trúc TenListbox.Items(i).ToString có tác d ng gì? Câu 136: C u trúc TenListbox.SelectedItems.Clear() có tác d ng gì? Câu 137: Thu c tính .Name ca Control ListBox có tác d ng gì ? Câu 138: Thu c tính . Items ca Control ListBox có tác d ng gì? Câu 139: Thu c tính . SelectionMod ca Control ListBox có tác d ng gì? Câu 140: Thu c tính . SelectedIndex ca Control ListBox có tác d ng gì? Câu 141: Thu c tính . Items ca Control ListBox có tác d ng gì? Câu 142: C u trúc TenListbox.Items.Clear() có tác d ng gì? Câu 143: C u trúc TenListbox Items.Add(“Tên Item M i”) có tác d ng gì? Câu 144: C u trúc TenListbox Items.Insert(y,“Tên Item M i”) có tác d ng gì? Câu 145: C u trúc TenListbox Items.Count() có tác d ng gì? Câu 146: C u trúc TenListbox Items.IndexOf(“Tên Item”) có tác d ng gì? Câu 147: C u trúc TenListbox Items.Item(n) có tác d ng gì? Câu 148: C u trúc TenListbox Items.Remove(”Tên Item”) có tác d ng gì? Câu 149: C u trúc TenListbox Items.RemoveAt(n) có tác d ng gì? Câu 150: C u trúc TenListbox Items.Contains(“Tên Item”) có tác d ng gì? Câu 151: C u trúc TenListbox Items.Item(n) có tác d ng gì? Câu 152: Control MenuStrip là gì? Câu 153: Cách chèn 1 m c ch n vào menu? Câu 154: Cách chèn 1 Textbox vào menu? Câu 155: Cách chèn 1 Separator vào menu? Câu 156: Các thu c tính c b n c a MenuStrip? Câu 157: Thu c tính .Name ca MenuStrip có tác d ng gì? 73
  74. Câu 158: Thu c tính .Text ca MenuStrip có tác d ng gì? Câu 159: Thu c tính .Enable ca MenuStrip có tác d ng gì? Câu 160: Các thu c tính c b n c a t ng m c ch n trong Menu bar? Câu 161: Thu c tính .Name ca Menubar có tác d ng gì? Câu 162: Thu c tính .Text ca Menubar có tác d ng gì? Câu 163: Thu c tính .ShortcutKey ca Menubar có tác dng gì? Câu 164: Thu c tính .ShowShortcutKey ca Menubar có tác d ng gì? Câu 165: Thu c tính .Enable ca Menubar có tác d ng gì? Câu 166: Thu c tính .AutoToolTip ca Menubar có tác d ng gì? Câu 167: Thu c tính .ToolTipText ca Menubar có tác d ng gì? Câu 168: Thu c tính .Image ca Menubar có tác d ng gì? Câu 169: Control ToolStrip là gì? Câu 170: Cách s d ng Control ToolStrip ? Câu 171: Ph ng th c nh l i v trí và kích th c i t ng khi Form thay i? Bài t p luy n t p Bài 1: Vi t chu ng Trình VB dùng timer làm 1 label ch y qua l i trên Form Hu ng d n: SV t o 1 timer dùng thu c tính interval thi t l p t c ch y, trong ng t timer t ng thu c tính Left c a Label 10 ơn v label di chuy n trên Form Bài 2: Vi t chu ng Trình VB dùng timer làm 1 ng h m ng c t 100->0 trên Form Hu ng d n: SV t o 1 timer dùng thu c tính interval thi t l p t c m, trong ng t timer gi m bi n m 1 ơn v . Bài 3: Vi t chu ng Trình VB mô ph ng c ng AND Hu ng d n: SV thi t l p 2 checkbox làm ngõ vào và 1 checkbox làm ngõ ra. Khi check vào ngõ vào ph i thay i giá tr ngõ ra theo b ng tr ng thái c ng AND Bài 4: Vi t chu ng Trình VB mô ph ng c ng OR Hu ng d n: Tươ ng t Bài 3 Bài 5: Vi t chu ng Trình VB mô ph ng c ng NAND Hu ng d n: Tươ ng t Bài 3 Bài 6: Vi t chu ng Trình VB mô ph ng c ng NOR Hu ng d n: Tươ ng t Bài 3 Bài 7: Vi t chu ng Trình VB mô ph ng c ng XOR Hu ng d n: Tươ ng t Bài 3 74
  75. Bài 8: Vi t chu ng Trình VB mô ph ng c ng NOT Hu ng d n: Tươ ng t Bài 3 Bài 9: Vi t chu ng Trình VB mô ph ng IC 7404 Hu ng d n: SV thi t l p các checkbox làm ngõ vào các checkbox làm ngõ ra. Khi check vào ngõ vào ph i thay i giá tr ngõ ra theo b ng tr ng thái IC 7404 Bài 10: Vi t chu ng Trình VB mô ph ng IC 7400 Hu ng d n: Tươ ng t Bài 9 Bài 11: Vi t chu ng Trình VB nh p 3 s tìm max, min Hu ng d n: Ly 3 Textbox nh p và 1 button làm nút l nh ki m tra. Dùng l nh so sánh các giá tr ca các bi n ã nh p tìm max, min và hi n k t qu trên Msgbox. Bài 12: Vi t ch ng trình nh p vào 1 s Dec và chuy n thành Bin dùng hàm trong VB. Hu ng d n: Dùng hàm s = Convert.ToString(i, 2) v i s ch a k t qu , i là s Dec c n chuy n. Bài 13 : Vi t ch ng trình nh p vào 1 s Dec và chuy n thành Hex dùng hàm trong VB. Hu ng dn: Dùng hàm s = Convert.ToString(i, 16) ho c s=Hex(i) Bài 14: Vi t ch ng trình nh p vào 1 s Dec và chuy n thành Oct dùng hàm trong VB. Hu ng d n: Dùng hàm s = Convert.ToString(i, 8) Bài 15: Vi t ch ng trình nh p vào 1 s Bin và chuy n thành Dec dùng hàm trong VB. Hu ng d n: Dùng hàm s = Convert.ToInt32(x, 2) v i s ch a k t qu , x là s Bin c n chuy n. Bài 16: Vi t ch ng trình nh p vào 1 s Bin và chuy n thành Hex dùng hàm trong VB. Hu ng dn: Tham kh o Bài 15 và Bài 13 Bài 17: Vi t ch ng trình nh p vào 1 s Bin và chuy n thành Oct dùng hàm trong VB. Hu ng d n: Tham kh o Bài 15 và Bài 14 Bài 18: Vi t ch ng trình nh p vào 1 s Hex và chuy n thành Dec dùng hàm trong VB. Hu ng d n: Dùng hàm s = Convert.ToInt32(x, 16) Bài 19: Vi t ch ng trình nh p vào 1 s Hex và chuy n thành Oct dùng hàm trong VB. 75
  76. Hu ng d n: Tham kh o Bài 18 và Bài 14 Bài 20: Vi t ch ng trình nh p vào 1 s Hex và chuy n thành Bin dùng hàm trong VB. Hu ng d n: Tham kh o Bài 18 và Bài 12 Bài 21: Vi t ch ng trình nh p vào 1 s Oct và chuy n thành Dec dùng hàm trong VB. Hu ng d n: Dùng hàm s = Convert.ToInt32(x, 8) Bài 22: Vi t ch ng trình nh p vào 1 s Oct và chuy n thành Bin dùng hàm trong VB. Hu ng d n: Tham kh o Bài 21 và Bài 12 Bài 23: Vi t ch ng trình nh p vào 1 s Oct và chuy n thành Hex dùng hàm trong VB. Hu ng d n: Tham kh o Bài 21 và Bài 13 Bài t p v nhà Bài 1: Vi t chu ng trình VB gi i PT b c I. Hu ng d n: Thi t k Form nh p vào a,b,x trong PT: y=ax+b và tính giá tr y. Bài 2: Vi t chu ng trình VB gi i PT b c II. Hu ng d n: Thi t k Form nh p vào a,b,c trong PT: ax 2+bx+c=0 và tìm nghi m c a PT ó. vi a 0, a=0 tr v PT b c I Bài 3: Vi t chu ng trình VB l p giao di n m t caculator. Hu ng d n: SV thi t k giao di n nh ư sau: Hình 3.18 Khi nh n s l n 1 l ưu vào bi n th 1. Khi nh n phép toán l ưu vào bi n Khi nh n s l n 2 l ưu vào bi n th 2. Khi nh n d u = dùng hàm so sánh bi t th c hi n phép toán gì gi a bi n 1 và bi n 2. 76
  77. Bài 4: Vi t ch ng trình VB nh p vào 5 s tìm max, min. Hu ng d n: Ly 5 Textbox nh p và 1 button làm nút l nh ki m tra. Dùng l nh so sánh các giá tr c a các bi n ã nh p tìm max, min và hi n k t qu trên Msgbox. Bài 5: Víêt chu ng trình VB l p giao di n nh p vào vòng màu c a in tr và xu t ra giá tr in tr . Hu ng d n: SV thi t k giao di n nh ư sau: Hình 3.19 Dùng hàm so sánh các Combo và tính giá tr R Bài 6: Vi t ch ng trình nh p vào ký hi u trên t in và xu t ra giá tr c a t . Hu ng d n: SV thi t k giao di n nh ư sau: Dùng hàm so sánh các Combo và tính giá tr C Bài 7: Vi t ch ng trình nh p vào ký hi u trên cu n c m và xu t ra giá tr c a cu n. Hu ng d n: Tham kh o Bài 5 Bài 8: Vi t ch ng trình nh p vào 1 s Dec và chuy n thành Bin dùng code t l p trình. Hu ng d n: Thi t k 1 textbox nh p s Dec, 1 textbox hi n th giá tr Bin ưc chuy n i, 1 button b t u chuy n. Dùng các c u trúc l p If then, Loop until, Select case, th c hi n các phép toán Convert nh ư công th c chuy n ã h c. 77
  78. Bài 9: Vi t ch ng trình nh p vào 1 s Dec và chuy n thành Hex dùng code t l p trình. Hu ng d n: Tươ ng t Bài 8 Bài 10: Vi t ch ng trình nh p vào 1 s Dec và chuy n thành Oct dùng code t l p trình. Hu ng d n: Tươ ng t Bài 8 Bài 11: Vi t ch ng trình nh p vào 1 s Bin và chuy n thành Hex dùng code t l p trình. Hu ng d n: Tươ ng t Bài 8 Bài 12: Vi t ch ng trình nh p vào 1 s Bin và chuy n thành Dec dùng code t l p trình. Hu ng dn: Tươ ng t Bài 8 Bài 13: Vi t ch ng trình nh p vào 1 s Bin và chuy n thành Oct dùng code t l p trình. Hu ng d n: Tươ ng t Bài 8 Bài 14: Vi t ch ng trình nh p vào 1 s Hex và chuy n thành Dec dùng code t l p trình. Hu ng d n: Tươ ng t Bài 8 Bài 15: Vi t ch ng trình nh p vào 1 s Hex và chuy n thành Oct dùng code t l p trình. Hu ng d n: Tươ ng t Bài 8 Bài 16: Vi t ch ng trình nh p vào 1 s Hex và chuy n thành Bin dùng code t l p trình. Hu ng d n: Tươ ng t Bài 8 Bài 17: Vi t ch ng trình nh p vào 1 s Oct và chuy n thành Dec dùng code t l p trình. Hu ng d n: Tươ ng t Bài 8 Bài 18: Vi t ch ng trình nh p vào 1 s Oct và chuy n thành Bin dùng code t l p trình. Hu ng d n: Tươ ng t Bài 8 Bài 19: Vi t ch ng trình nh p vào 1 s Oct và chuy n thành Hex dùng code t l p trình. 78
  79. Hu ng d n: Tươ ng t Bài 8 Bài 20: Vi t ch ng trình i ch hoa thành ch th ng và ng c l i. Hu ng d n: Dùng hàm Ucase và Lcase Bài 21: Vi t ch ng trình i ra ch hoa các ký t u trong on text. Hu ng d n: Vi t CT tìm ký t tr ng và i sang ch hoa ký t bên ph i kho ng tr ng. Bài 22: Vi t ch ng trình mô ph ng ng c b c ch 1 b c. Hu ng d n: Dùng timer m i l n ng t xu t 1 tr ng thái ng c ơ b ưc ra label. Bài 23: Vi t ch ng trình mô ph ng ng c b c ch 1/2 b c. Hu ng d n: Tươ ng t Bài 22. Bài 24: Vi t chu ng trình mô ph ng IC 555. Hu ng d n: Vi t CT dùng màu c a label th hi n tr ng thái ho t ng c a IC Bài 25: Vi t chu ng trình mô ph ng IC 4017. Hu ng d n: Tươ ng t Bài 24. Bài 26: Vi t chu ng trình mô ph ng IC 74138. Hu ng d n: Tươ ng t Bài 24. Bài 27: Vi t chu ng trình mô ph ng IC 74148. Hu ng d n: Tươ ng t Bài 24. Bài 28: Vi t chu ng trình mô ph ng IC 74193. Hu ng d n: Tươ ng t Bài 24. Bài 29: Vi t chu ng trình mô ph ng IC 74164. Hu ng d n: Tươ ng t Bài 24. Bài 30: Vi t chu ng trình mô ph ng IC 74245. Hu ng d n: Tươ ng t Bài 24. Bài 31: Vi t chu ng trình mô ph ng IC 7402. Hu ng d n: Tươ ng t Bài 24. Bài 32: Vi t chu ng trình mô ph ng IC 4511. Hu ng d n: Tươ ng t Bài 24. Bài 33: Vi t chu ng trình mô ph ng IC 4510. Hu ng d n: Tươ ng t Bài 24. 79
  80. CHU ƠNG IV X LÝ FILE TEXT TRONG VB.NET CÁC HP THOI CHUN (COMMON DIALOG) Mc ích – Yêu c u Sau khi h c xong chu ng này sinh viên n m uc: - Các thao tác c b n và nâng cao trên file Text - S d ng các h p tho i chu n S ti t lên l p: 5 Bng phân chia th i lu ng STT NI DUNG S TI T 1 Các thao tác c b n và nâng cao trên file Text 3 2 S d ng các h p tho i chu n 2 Tr ng tâm bài gi ng - Bi t cách s d ng các h p tho i chu n - Nm c các thao tác c b n và nâng cao trên file Text 80
  81. 4.1 CH N NG D N NG CHO FILE (xem [4 tr 239]) S d ng namespace ch a các hàm nh p/xu t: System.IO Khi ch ng trình ng d ng vi t b ng VB.NET có liên quan n các file khác, vi c ch ng d n t nh n tên file s b h n ch và phát sinh l i n u di chuy n file i ni khác, không còn úng v trí c a ng d n n a. Cú pháp sau ây s khai báo m t bi n TenFile ki u chu i bao g m ng d n ng và tên file c th . Dim TenFile As String = Application.StartupPath & "\FileText.txt" Application.StartupPath s l y ng d n c a file ã biên d ch c a ch ng trình, thông th ng file .exe c a ch ng trình ng d ng mà ta vi t s n m trong: a:\ ngD n nV TríCh aTênSolution\TênSolution\TênProject\Bin\Debug Ví d : D:\Working\VbNet\CacViDu\DungVBnet\DungVbnet\bin\Debug\TextFile.Txt Nh v y, ta ch vi c t các file có liên quan n ch ng trình trong ng d n nh ví d trên. Khi sao chép, di chuy n solution sang ng d n khác thì Application.StartupPath c ng s l y v ng d n m i b o toàn cho vi c truy xu t n file khi ch y ng d ng này. 4.2 KI M TRA S T N T I C A FILE (xem [4 tr 241]) System.IO.File.Exists(TenFile) có hai giá tr : - True là file có tên ang t n t i - False là file hi n không t n t i. Bi t r ng, TenFile là m t bi n bao g m c ng d n và tên file c th . Ví d : Tr v giá tr check box b ng Checked n u file t n t i. Imports si = System.IO Public Class Form1 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim tenfile As String = Application.StartupPath & "\Textfile.txt" 81
  82. CheckBox1.Checked = System.IO.File.Exists(tenfile) End Sub 4.3 C VÀ HI N TH N I DUNG FILE TEXT LÊN TEXTBOX TRÊN FORM (xem [4 tr 243]) Cú pháp khai báo lu ng c n i dung file text : Dim TenBien As New System.IO.StreamReader(TenFile) c và hi n th toàn b n i dung v n bn Ví d : Imports si = System.IO Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim tenfile As String = Application.StartupPath & "\Textfile.txt" Dim docfile As New si.StreamReader(tenfile) TextBox1.Text = docfile.ReadToEnd docfile.Close() End Sub End Class Lu ý: - S d ng StreamReader() m lu ng ghi lên file. - Ph ng th c .ReadToEnd c h t toàn b n i dung hi n có trong file text. - Ph ng th c .Close óng lu ng sau khi c xong. c và hi n th t ng dòng v n b n Ví d : Imports si = System.IO Public Class Form1 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim tenfile As String = Application.StartupPath & "\Textfile.txt" Dim docdong As New si.StreamReader(tenfile) Do While docdong.Peek <> -1 TextBox1.Text = TextBox1.Text & docdong.ReadLine & vbNewLine 82
  83. Loop docdong.Close() End Sub Lu ý: - S d ng StreamReader() m lu ng ghi lên file. - Ph ng th c .ReadLine c t ng dòng n i dung hi n có trong file text. - Ph ng th c .Peek() s dò tìm kí t b t kì dòng k ti p, n u không tìm th y kí t nào dòng k ti p thì tr v giá tr -1, ngh a là h t file. - Ph ng th c .Close óng lu ng sau khi c xong. - Hng vbNewLine xu ng dòng m i (t ng t h ng vbCrLf ) 4.4 GHI N I DUNG TEXTBOX TRÊN FORM VÀO FILE TEXT (xem [4 tr 246]) Khi ti n hành ghi (l u - Save) n i dung c a textbox vào file text, VB.NET s th c hi n luôn vi c t o ra file m i n u TenFile ch a th c s t n t i. Nh ng n u TenFile ang t n t i thì VB.NET s c n c vào thông s False/True n m sau TenFile, n u False thì ghi è n i dung m i lên n i dung hi n có trong TenFile, n u True thì ghi ti p n i dung m i sau n i dung hi n có trong TenFile, tr ng h p sau TenFile tr ng (không có False c ng không có True) thì c hi u là False. Cú pháp khai báo lu ng ghi è n i dung m i lên n i dung hi n có trong file text : Dim TenBien As New System.IO.StreamWriter(TenFile, False ) Dim TenBien As New System.IO.StreamWriter(TenFile) Cú pháp khai báo lu ng ghi n i dung m i ti p theo n i dung hi n có trong file text : Dim TenBien As New System.IO.StreamWriter(TenFile, True ) Ghi toàn b n i dung textbox Ví d : Ghi n i dung t textbox ra file text Imports si = System.IO Public Class Form1 Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim tenfile As String = Application.StartupPath & "\Textfileok.txt" 83
  84. Dim ghifile As New si.StreamWriter(tenfile) ghifile.Write(TextBox1.Text) ghifile.Close() End Sub Lu ý: - S d ng StreamWriter() m lu ng ghi lên file. - Ph ng th c .Write (n i dung text c n ghi) ghi toàn b n i dung v n b n lên file. - Ph ng th c .Close óng lu ng sau khi ghi xong. Ghi t ng dòng n i dung text box Lu ý: - VB.NET hi u t ng dòng v n b n trên textbox là m t ph n t m ng chu i qua ph ng th c .Lines ca control textbox. - Ph ng th c .WriteLine (n i dung dòng text c n ghi) ghi t ng dòng n i dung v n b n lên file, chính xác h n là ghi t ng ph n t c a m ng chu i lên file text. Ví d : Ghi tng dòng c a Textbox vào file text Imports si = System.IO Public Class Form1 Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Dim tenfile As String = Application.StartupPath & "\Textfileok.txt" Dim ghidong As New si.StreamWriter(tenfile, True) Dim tungdong() As String Dim i As Integer tungdong = TextBox1.Lines For i = 0 To (tungdong.Length - 1) ghidong.Writeline(tungdong(i)) Next ghidong.Close() End Sub 4.5 SAO CHÉP FILE TEXT (xem [4 tr 246]) Cú pháp : 84
  85. System.IO. File.Copy (TenFileGoc,TenFileCopy) Ví d : Coppy file Textfileok.txt vào th m c hi n hành và t tên là Coppy of Textfileok.txt Imports si = System.IO Public Class Form1 Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click Dim bangoc, bansao As String bangoc = Application.StartupPath & "\Textfileok.txt" bansao = Application.StartupPath & "\Coppy of Textfileok.txt" si.File.Copy(bangoc, bansao) End Sub 4.6 DI CHUY N FILE TEXT (xem [4 tr 247]) Cú pháp : System.IO. File.Move (ViTriNguonVaTenFileNguon,ViTriDichVaTenFileDich) Ví d : Di chuy n file Textfileok.txt th m c hi n hành vào D:\Tai_Lieu Imports si = System.IO Public Class Form1 Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click Dim vitringuon, vitridich As String vitringuon = Application.StartupPath & "\Textfileok.txt" vitridich = "D:\Tai_Lieu" & "\Textfileok.txt" si.File.Move(vitringuon, vitridich) End Sub 4.7 XOÁ FILE TEXT (xem [4 tr 247]) Cú pháp : System.IO. File.Delete(duong_dan_và_ten_FileCanXoa) Ví d : Xoá file Coppy of Textfileok.txt th m c hi n hành Imports si = System.IO 85
  86. Public Class Form1 Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click Dim file As String file = Application.StartupPath & "\Coppy of Textfileok.txt" si.File.Delete(file) End Sub 4.8 CÁC H P THO I CHU N (xem [4 tr 306]) Vi c c (m ) và ghi (l u) file text khi th c hi n nh các cách trên thì kém tr c quan. Ng i dùng khi ch y on ch ng trình l u file xong thì ph i m ch ng trình Windows Explore xem th n i dung text ã th c s c l u vào file hay ch a. M t cách khác th c hi n m và l u tr c quan h n là dùng các h p tho i ch n tên file mu n m ho c gõ tên file mu n l u, a. Hp tho i m file Cú pháp khai báo m t i t ng ki u h p tho i Open file : Dim TenBien As New OpenFileDialog Lu ý: - Thu c tính .Filter cho phép hi n th các ki u file nào t i m c File of Type trong hp tho i Open b ng cách gõ li t kê ra tên các ki u file nh All file/Word file/Text file - Thu c tính .FilterIndex giúp ch n lo i file m c nh. - Thu c tính .InitialDirectory giúp hi n th v trí m c nh t i m c Look in c a hp tho i. - Thu c tính .FileName ly ng d n và tên file ng i dùng ch n. - Ph ng th c .ShowDialog hi n th h p tho i lo i OpenFileDialog. Ví d : Dùng OpenFileDialog m và chép n i dung file lên Textbox Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click OpenFileDialog1.Filter = "All Files|.*|Word file|*.doc|Text file|*.txt" OpenFileDialog1.FilterIndex = 2 86
  87. OpenFileDialog1.InitialDirectory = "C:\" If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then Dim docfile As New si.StreamReader(OpenFileDialog1.FileName) TextBox1.Text = docfile.ReadToEnd docfile.Close() End If End Sub Hình 4.1: Open File Dialog b. Hp tho i l u file Cú pháp khai báo m t i t ng ki u h p tho i Save file : Dim TenBien As New SaveFileDialog Ví d : Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click SaveFileDialog1.Filter = "All Files|.*|Word file|*.doc|Text file|*.txt" SaveFileDialog1.InitialDirectory = "C:\" If SaveFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then Dim ghifile As New si.StreamWriter(SaveFileDialog1.FileName) ghifile.Write(TextBox1.Text) ghifile.Close() End If End Sub 87