Ch
ng Hai- Vi
t ch
ng trình đ u tiên
ươ
ế
ươ
ầ
ớ ậ ườ ầ ấ ể ữ ng tri n khai l p trình (Integrated Development Environment - IDE) ố ừ ộ ạ t r i. M t ch ể i m t s v n đ mà có l ả ng trình Visual Basic g m có ph n ầ t k ph n hình nh b ng cách ả ế ế ữ ầ Túi đ ngh (Toolbox) n m bên trái. N u b n không ằ i. ế ớ ồ ằ ế ế ồ ạ ồ ừ ạ ấ ể ắ ệ ề ệ Menu View|Toolbox đ b t nó hi n ra. ng trình b ng cách ch n Standard EXE, môi tr ọ ồ ồ ắ ầ ườ ằ ạ ể ổ ạ i bên ph i (trong hình d ủ ủ ạ ằ ơ ả ể ử ề ự ử ổ ướ ủ ủ B n đang làm quen v i môi tr ể ạ t nh ng dòng mã đ u tiên đ chào m ng th gi c a MS VB6 và r t nóng ru t mu n vi ế ộ ủ Ta th ôn l b n đã bi ươ ẽ ạ ề ộ ố ấ ử mã l p trình và các hình nh (visual components). B n có th thi ậ dùng nh ng đ ngh (Controls hay Objects) t ề th y cái Túi đ ngh thì dùng m nh l nh ệ ề t k m t ch Khi b n b t đ u thi ng tri n khai ể ươ ế ế ộ ử ổ l p trình (IDE) cho b n s n m t Form tên là Form1. B n có th đ i tên (Name) nó trong cái c a s ộ ạ ẵ ậ Propeties n m phía d i đây ta edit Name property c a Form1 thành ra ướ ướ ằ frmMainForm). B n cũng có th s a đ t a (Title) c a form ra cái gì có ý nghĩa h n b ng cách đ i ổ Caption c a form cũng trong c a s Propeties (trong hình d i đây ta edit Caption property c a form thành ra "Chi tiet cua ban toi").
S p đ t các v t d ng lên Form ậ ụ
ắ
ặ
ộ ố ấ ồ ặ ộ ồ ẽ ộ ạ ẽ ữ Mu n đ t m t Control lên Form, click hình cái Control trong Toolbox r i Drag (b m nút trái c a ủ con chu t r i kéo cho thành hình ch nh t tr c khi buông nút trái ra) con chu t trên Form v thành ữ ậ ướ ng nh t t c c a Control. Nh ng Controls b n s dùng th ộ Toolbox là Label (nhãn), Textbox (h p ấ ừ ở ủ ườ đ đánh ch vào) và CommandButton (nút b m m nh l nh). ệ ệ ể ữ ấ
ố ử ữ
1
ng trình (at run-time). Trong lúc thi Trong hình trên ta có ba Label và ba Textbox. Mu n s a ch Label1 ra "Ten" thì edit Property ổ Caption. Còn Textbox không dùng Property Caption mà dùng Property Text. Ta cũng có th thay đ i các Property Caption và Text trong khi ch y ch ươ time) b n có th s a đ i ki u ch c a nh ng Controls b ng cách edit Property Font c a chúng ể t k (design ế ế ủ ể ử ổ ạ ữ ữ ủ ể ạ ằ
ử ổ ẽ trong c a s Properties (click bên ph i c a Property Font trong Properties Window, IDE s pop-up cái Font dialog đ b n l a ch n nh ng đ c tính c a Font nh trong hình d i đây). ả ủ ặ ể ạ ự ướ ữ ủ ư ọ
i sao cái c ch t có (default size) c a các Control h i nh , b n có th ạ ạ ấ ự ở ữ ự ỏ ạ ơ i quy t b ng cách s a c ch c a chính Form cho nó l n h n. Vì khi m t Control đ ể c đ t lên ớ ế ằ ủ ơ ử ở ữ ủ ượ ặ ộ ừ ế ở ử ủ ế ế ả ộ ể ắ ọ ả ệ ệ ẳ ạ ớ ồ t cách ch n m t nhóm Control thì có hai cách. Cách th ư ế ế ạ ọ ộ ấ ạ ố ọ ọ ứ ể ẽ ẩ ạ ợ ằ ườ ầ ợ ộ ng h p các Control n y n m trong m t c, r i đè nút ọ ụ ư ộ ướ ạ ả ồ N u b n th y b c mình t gi m t Form, nó th a k c ch c a Form. Đ s p x p cho m t s Control th ng hàng v i nhau b n ch n c nhóm r i dùng m nh l nh Menu ộ ố ứ Format|Align|Lefts .v.v..N u b n ch a bi nh t b n đè nút Shift trong khi click các Control b n mu n ch n. Cái Control mà b n ch n sau cùng ạ s là cái chu n đ các Control khác s làm gi ng theo. Cách th hai là Drag cho s i dây thun ố ẽ (rubber band) b c chung quanh các Control. Trong tr container, thí d nh m t khung (Frame) hay PictureBox, thì b n ph i click Form tr Ctrl trong khi Drag rubber band bao các Control.
Ch a m i th c a m t d án VB
ọ ứ ủ
ộ ự
ứ
ọ ả ấ ạ ể ộ ử ổ ộ ng thì m t d án có nhi u Form và có th ề ế ế ữ ườ ấ ầ ự ộ ự ộ t cho m t d án. Th ộ ự
c ch a vào đĩa d i d ng "frmMainForm. ằ ạ ứ ướ ạ frm". B n save m t form b ng menu ộ ả ứ ụ ạ ng m t c ủ i làm icon cho frmMainForm) thì các hình ấ frx". L u ý là không nh t ư ợ ự ộ ả ạ ộ nh c a frmMainForm s đu c t ế ặ ườ đ ng ch a trong h s "frmMainForm. ồ ơ ứ t khi ch a (save) ph i gi ng nh tên c a Form mà ố ư ủ ế ả ng trình. Tuy nhiên b n nên dùng cùng m t tên cho c hai đ sau n y d tìm ễ ả c thông th frm", thí ầ ể c đ t tên b t đ u b ng " ắ ầ ộ ng, các Form đ ượ ặ ươ ấ ạ ướ ườ ằ
ấ ả ồ ơ ể ả ộ
ữ ổ ạ ằ ả ồ ộ t c nh ng h s dùng cho cùng m t ứ ấ ả ữ ử ổ ướ ử ổ ồ ơ
2
ạ các Control n m trong Form, ph n còn l T i đây b n đ ý th y trong c a s bên ph i, phía trên, g i là Project Explorer, có hình gi ng nh ư ố ớ ệ ụ m t cái cây (tree) cho th y ta có m t Form trong m t Project (d án). Project là m t cách ti n d ng ộ đ ta s p x p nh ng gì c n thi ể ắ ể c n nh ng th khác. ứ ầ ữ M i Form s đ ẽ ượ ỗ command File | Save formfilename.frm. N u trong Form1 có ch a hình nh (thí d b n dùng ế Properties Window đ ch n m t icon hình g ươ ể ọ ả ứ ẽ t tên c a h s (file) mà b n ph i cho bi thi ủ ồ ơ b n dùng trong ch ạ ạ h s n u có th t l c. Theo qui ồ ơ ế d nh "frmMainForm". ụ ư ộ t c h s dùng cho d án, k c các Form và m t Khi b n ạ save m t Project thì có nghĩa là save t ự t ch Visual Basic Project). t t h s cho chính Project, thí d nh "MyFirstProg.vbp" ("vbp" là vi ế ắ ồ ơ ụ ư File | Save Project. À, mu n đ i tên Project, b n click B n save Vb6 project b ng menu command ố ạ lên hàng trên cùng bên ph i trong c a s Project Explorer (Project1 (Project1.vbp)), r i edit tên c a ủ i. B n nên ch a t Project trong c a s Properties phía d ạ Project trong cùng m t t p (Folder/Directory). ộ ậ B n có th dùng Notepad đ m ra xem ch i, coi trong "frmMainForm.frm" có gì. B n s th y ạ ẽ ấ ơ trong y g m có hai ph n: ph n đ u là di n t ễ ả ầ ể ở ầ ậ i là mã l p ể ồ ấ ầ ằ ầ ạ
ạ ẽ ạ ạ các Control đ thi c ghi ề ượ i (reconstruct) hình t. B n cũng s chú ý là các properties mà b n đã s a cho các Control đ u đ ế ầ t l p l ế ậ ạ ử ể ễ ả ự ầ ầ trình mà b n vi l i trong ph n đ u nói trên. VB d a vào ph n di n t ạ nh c a Form. ả ủ
ng trình t ươ ệ ể ộ ự ộ ữ đ ng ch (generate) ra nh ng ế
ng trình kh i đ u cho chúng ta ể ế ộ ố ươ ủ ở ầ các b ng k m (Template). Sau n y, khi đã lão luy n VB, b n có th dùng m t ch ạ ầ các Control cho m t Form. hàng di n t ễ ả ộ Đó là k thu t dùng trong các Wizards c a VB đ ch m t s ch ỹ ậ t ả ừ ẻ
Thêm mã l p trình đ x lý m t s c ộ ự ố
ể ử
ậ
t thêm dòng n y đ k t thúc ch
ng trình
ỉ ế
ạ
ể ế
ầ
ươ
Private Sub cmdXuat_Click() End ' B n ch vi End Sub
ể ử ụ ế ấ i s d ng s click nút "Xuat". Đ th c hi n đi u n y trong khi tri n khai ứ t mã đ x lý các s c (Event). Thí d mu n ch m d t ầ ự ố ề ệ ể ự ố ể ẽ t s n cho b n cái v ẽ ế ẵ ế ạ ầ ỏ H u h t l p trình trong Visual Basic là vi ầ ch ươ ườ ử ụ ch ươ c a m t Subroutine: ủ ế ậ ng trình, ng ng trình b n doubleClick (click liên ti p 2 l n) nút "Xuat". VB IDE s vi ạ ộ
3
ể ắ t ch CommandButton), VB g n t t ế ắ ể ỏ ẽ ủ i và Event Click đ làm thành tên i s d ng click nút Xuat. Ch ủ ng trình nh hay Subroutine n y còn đ Đ ý là tên (Name) c a nút Xuat là "cmdXuat" ("cmd" là vi thêm d u g ch d ạ ấ c x lý khi ng đ ượ ử ướ ườ ử ụ ữ cmdXuat_Click c a Sub, ch ươ ầ ng trình nh s ượ ọ c g i ươ ỏ
ọ i thích cho l p trình viên (g i ậ ữ ể ả ế ẽ ử ắ ầ ằ ấ '. Khi VB th yấ ỏ ạ ữ ầ ậ ọ ơ ể ệ ậ ườ ể ả ươ ươ ộ ề ng v i s ti n b ra l n đ u đ tri n khai. B o trì có nghĩa là thăm vi ng l ổ ả ầ ầ i khác ng trình thì ít ạ i ế ng trình c a mình. Nên nh là ti n phí t n đ b o trì m t ch ớ ớ ố ề ể ể i (fix bug) và thêm các đ c đi m cho hay h n (enhancement). ể ể ươ ể ử ỗ ề ể ả ơ ơ i thích rõ ràng. ứ ấ ằ ố ắ ứ ế ấ ấ ạ ộ ướ i
ọ
ổ
ố
t vào c ng s 2: Tên, Đ a ch và Tu i, ngăn
ế
ở ộ ồ ơ ể ế ằ
ố
ổ
ổ
ỉ
cách nhau b ng d u ch m ph y ẩ
t ra và g i là c ng s 2 ấ
ấ
ổ
Private Sub cmdViet_Click() Open "myFriends.txt" For Output As #2 ' M m t h s đ vi ' Vi ị Print #2, txtTen & ";" & txtDiachi & ";" & txtTuoi Close #2 ' Đóng c ng s 2 ố End Sub
là Event Handler cho Event Click. Hàng ch xanh lá cây là dùng đ gi là Comment), VB s hoàn toàn không chú ý đ n nó khi x lý Sub cmdXuat_Click. Comment có nghĩa là chú thích. Trong VB chú thích b t đ u b ng d u single quote i trên dòng mã. d u n y là nó b qua nh ng gì còn l ấ Là L p trình viên chuyên nghi p b n nên t p thói quen dùng Comment m i n i đ giúp ng ạ và chính b n hi u ch ủ ạ nh t là t ng đ ỏ ươ ấ ng trình đ s a l ch ặ ươ Nói chung h b n làm đi u gì bí hi m hay c c c thì làm n gi ắ ớ ể ạ N u mu n c t m t dòng mã VB ra làm hai dòng thì ch m d t dòng th nh t b ng d u g ch d _. Ti p theo, b n doubleClick nút "Viet vao dia" và vi t nh ng hàng mã sau: ữ ế ế ạ
ở ộ ồ ơ ọ myFriends.txt" và g i nó là c ng s i, ngăn cách b ng d u ch m ph y ( ố ổ ẩ ;) ấ i. D u " c h t ta m m t h s tên là " ướ ế t ra ta ráp Tên, Đ a ch và Tu i l ổ ạ ị ở ạ ỉ ứ ấ ầ ỡ ố ở ấ ằ ấ &" là operator đ rápể ạ ớ ữ ổ ố Trong Sub cmdViet_Click, tr 2. Sau khi m h s đ vi ở ồ ơ ể ế đ đánh d u nh sau n y ta mu n g riêng ba th ra tr l ể (concatenate) hai dòng ch (text string) l Print #2 có nghĩa là vi ứ Th chúng ta vi t ra c ng 2 là Tên, Đ a ch và Tu i (txtTen & ";" & txtDiachi & ";" & txtTuoi). t ra c ng s 2, t c là h s "myFriends.txt". ế ổ i v i nhau. ồ ơ ổ ứ ế ị ỉ
Nh ng r c r i c a vi c m m t h s ở ộ ồ ơ
ắ ố ủ
ữ
ệ
fileNo = freefile
trên là ta t ổ ch n (arbitrary). Th t ra mu n g i c ng s m y cũng đ ố ự ọ ậ ư ố ở ầ ố ấ ố ấ ọ ổ ổ ượ ộ ệ ọ Cái c ng s 2 ch a có ph n nào khác trong cùng ch làm vi c cho ti n thay vì g i nguyên m t cái tên h s dài. N u mu n ch c ch n không trùng s c ng v i ch nào khác, ta có th làm nh sau: c, mi n là ễ ng trình n y đang dùng c ng s y. Đây là m t cách VB ươ ộ ố ổ ầ ồ ơ ỗ ệ ắ ư ế ể ắ ớ ố
ng trình ằ freeFile là m t Function (ch ộ ươ ộ ờ ộ ấ ữ ứ ồ ỏ ế ố ể ệ ồ ơ ư đây đ nói t ể t ra" m t h s . Khi m m t h s đ vi ế ộ ồ ơ ở ộ ồ ơ ể ế ẽ ị ế ể ỏ t ch ng lên" ồ chuyên môn là "vi c d ng nên. Đ ng t ư ờ CPU (Central ừ ồ ơ t ra ki u n y thì n u h s ế ầ c d ng nên (created). N u h s đã có r i thì nó s b xoá b (delete) và đ ng ồ ừ ớ ẽ ượ ự ộ ồ ơ ố ồ ơ ộ ế ồ
ồ ơ
ế
ở ộ ồ ơ ể ế
ọ
ổ
ố
t ra và g i là c ng s 2
ở ộ ồ ơ ể ế
ọ
ổ
ố
If Dir("myFriends.txt") <> "" then ' N u h s "myFriends.txt" hi n h u ệ ữ Open "myFriends.txt" For Append As #2 ' M m t h s đ vi t thêm và g i là c ng s 2 Else Open "myFriends.txt" For Output As #2 ' M m t h s đ vi End If
4
ữ Input" thay vì "Output". Còn n u "vi ế ế ế ồ ơ ấ t thêm" ữ Append" thay vì "Output". ng h p y b n ph i ki m xem h s "myFriends.txt" đã có s n ch a. B n có th vi ở ộ ồ ơ ể ọ ẵ ợ ấ ộ ồ ơ ườ ể ế t ồ ơ ư ạ ả ẵ ạ R i thay th s 2 b ng ch fileNo trong Sub cmdViet_Click. nh dùng đ tính ra m t th gì) nh VB c p phát cho m t con s đ i di n h s ch a ai dùng. ố ạ Ch ữ Output trong câu ( Open "myFriends.txt" For Output As #2 ) dùng ở Processing Unit) ta mu n "vi ố ch a có nó s đ ẽ ượ ự th i m t h s tr ng và m i s đ (overwrite). N u ta m m t h s đ "đ c vào" thì dùng ch " vào m t h s có s n (ch không overwrite h s y) thì dùng ch " ớ Trong tr ể nh sau: ư
ở
ẽ
ế
ắ
ể folder nào. Câu tr l ả ờ ế
ằ ở ng trình vào dĩa (vì m i vi ẽ
ồ ơ
ươ
ủ
ượ c Function Dir("myFriends.txt") dùng trên s cho ta tên c a h s n u h s hi n h u, ng ủ ồ ơ ế ồ ơ ệ ữ i nó s cho m t dòng ch tr ng (empty string), bi u hi u là "". T i đây, n u lanh ý b n s l ạ ẽ ạ ệ ữ ố ộ ẽ ạ ư t ch c. N u b n ch a i là không bi h i h s "myFriends.txt" n m ế ạ ế ỏ ồ ơ folder c a VB6.EXE. Còn nh đã t) thì nó n m ch a (save) ch ư ủ ớ ứ ằ ở ươ nó n m ch a ch ng trình r i thì có l ố ạ ươ ằ ở ồ ứ ng trình, b n có th làm nh sau: "myFriends.txt" luôn luôn đi cùng v i ch ớ
ng trình b n. Mu n h s ư
folder c a ch ạ ươ
ể
ấ
ươ ữ ố ắ
cu i ở ố
ộ
t ra và g i là c ng s 2
ở ộ ồ ơ ớ
ể ế
ọ
ổ
ố
ng trình x lý c a b n MyLocalFolder = App.path ' L y folder c a ch ủ ạ ử ủ If Right(MyLocalFolder,1) <> "\" then ' N u ch cu i cùng không ph i là backslash ả ế MyLocalFolder = MyLocalFolder & "\" ' thì g n thêm m t backslash End If ' M m t h s v i tên có folder (full pathname) đ vi Open MyLocalFolder & "myFriends.txt" For Output As #2
i b ng câu Close #2.. T rày VB có th c p s 2 đ làm c ng cho ch ố ồ ơ ạ ằ ể ấ ố ừ ể ổ ỗ Cu i cùng ta đóng h s l khác trong ch ng trình. ươ
Default Property c a m t Control
ủ
ộ
c dùng t cho "txtTen.text", vì Default Property c a m t TextBox là text ở ượ ủ ộ t t ế ắ ộ c VB dùng khi b n ch cho tên c a Control ỉ ượ ủ ạ
c xem là Textbox tr n v n ẹ
ượ
Call CheckmyTextbox (txtDiachi) ' txtDiachi đ CheckmyTextbox txtDiachi ' txtDiachi đ
ọ ộ dòng ch ữ c xem là txtDiachi.text, m t
ượ
ủ c dùng nh txtTen.txt đ nói đ n m t dòng ch , nên trong ch ế ượ ươ ể ng trình ta nh c đ n ắ ế c dùng ba ch đ u "txt" cho ữ ầ ữ ớ ướ ố ng. Hãy ư ộ ộ ườ ủ ệ ả ậ t khi g i m t Sub trong hai tr đây là vi "txtTen" đ c a nó. Default Property c a m t Control là Property đ ủ ủ mà thôi. Trong khi đó Default Property c a Label là Caption. Vì txtTen đ ộ ư nó y nh m t variable (mã s ) dùng cho m t string. Do đó v i qui ộ tên c a m t Textbox giúp ta nh n di n ngay nó không ph i là m t string variable bình th ộ l u ý s khác bi ự ư ng h p sau: ợ ườ ệ ọ ộ
Th t
các Control trên m t Form
ứ ự
ộ
ể
Private Sub txtTen_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then ' N u nút b m là Enter ấ ế SendKeys "{TAB}" ' gi m o g i nút Tab ở ả ạ KeyAscii = 0 ' Nu t tr ng nút Enter đ Windows không còn lo cho nó ố ọ End If End Sub
ố ầ ươ ườ ử ụ ữ ệ ị ố ớ i x d ng cho vào d ki n theo th t ứ ự t (cursor ) n m trong txtTen ngay đ ng ể ườ ử ụ ổ "Tên, Đ a ch , Tu i". ỉ ấ i x d ng kh i m t ằ ỏ ấ ớ ắ ố ở ạ ẽ ồ ứ ự ể ự ể ắ i đó. Ta nói là txtTen có cái Focus. ể ể ủ ắ ầ các Control cho s di chuy n c a cursor khi ng ủ ằ ườ ử ụ ố ế ể Trong ch ng trình n y ta mu n ng Khi m i vào, ta mu n cái d u ch p t ấ công click vào Textbox y khi mu n mang cursor tr l i x d ng đã cho tên vào r i, cô s đánh nút Tab đ di chuy n cursor qua Control ti p ế Sau khi ng ườ ử ụ i x theo, mà ta mu n là txtDiachi. Đ s p th t ườ ử ố ề d ng đánh nút Tab ta edit Property TabIndex c a các Control. TabIndex b t đ u b ng s 0. Nhi u ụ khi ng ạ i x d ng thích dùng nút Enter thay vì Tab đ di chuy n Cursor qua Control ti p theo, b n ể có th làm nh sau cho Textbox txtTen: ể ư
5
ươ nh v y. Khi b n doubleClick ạ ư ạ ng t ạ Private Sub txtTen_Change(). B n ph i click cái ợ ư ậ ạ ả ầ ầ Cho các Textbox khác nh txtDiachi, txtTuoi b n cũng làm t txtTen l n đ u đ vi ể ế Combobox bên ph i, phía trên c a Code Window, cho nó m ra và ch n Event KeyPress. ả t mã, VB cho b n ủ ở ọ
ố ơ ấ ế ệ ươ ườ ử ụ ạ o) đ mang Cursor v txtTuoi hay ể ng trình mình còn chuyên nghi p h n, b n cho phép ng ố c các ch ề phía tr ở ướ ấ ả ấ &" i x d ng b m nút Alt+d đ mang ể ữ T, D và o trong Alt xu ng trong khi b m nút ế ạ
ạ ủ ẽ ư ế ế ị TabIndex c a lblTen, txtTen, lblDiachi, txtDiachi, lblTuoi, txtTuoi liên i x d ng đánh Alt+o, VB s mang Cursor v nhãn lblTuoi, nh ng vì ườ ử ụ ả ế ề ứ ệ ủ ị ể ỏ ấ ặ ầ ả ỗ ả ứ ế ố ừ ượ ạ TabStop c a TextBox ủ i s d ng v n có th click vào TextBox và s a dòng c, nên Cursor ph i đáp lên textbox có TabIndex value k đó, t c là 1. m t TextBox nào thì edit Property ạ ở ộ ẫ ườ ể ằ đó đ i s d ng s a gì c nh th ườ ử ụ ư ườ ậ ự ử ở ữ ở ượ ử ố ườ ử ụ ng. N u b n th t s không mu n cho phép ng ằ i ng h p y ng ợ ấ ạ ế ằ ủ Locked b ng True. Khi Enabled c a ờ ộ c các ch X và V trong Caption các CommandButton ệ ấ ng đ ở phía tr ướ i s d ng có th b m Alt-X coi nh t ườ ử ụ ng v i click ớ ư ươ ể ấ ươ
ể
Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then ' N u nút b m là Enter ế ấ m o g i nút Tab SendKeys "{TAB}" ' gi ở ả ạ KeyAscii = 0 ' Nu t tr ng nút Enter đ Windows không còn lo cho nó ố ọ End If End Sub
ạ ỡ ề ộ ổ ả ộ ế ế ấ ạ ằ ầ ừ ạ TextBox nào, b n c nh m m t đ i nó ra nút Tab. ứ ắ ổ ạ ứ ắ ở ớ ượ ả ạ KeyPreview c a nó thành True. B n làm c khi TextBox th y. Form ự ấ t c các KeyPress c h t b n ph i ch n (select) Form r i edit Property ồ t cái nút ng i s d ng đánh (keystroke) tr ườ ử ụ ặ ủ ướ ể ế ấ ả ạ N u b n mu n ch ạ Alt+o (b m nút ấ Cursor v txtDiachi. Mu n th b n ph i thêm vào d u " ố ề Caption c a các label lblTen, lblDiachi và lblTuoi. ủ K đó b n ph i cho giá tr ả ti p là 0,1,2,3,4,5. Khi ng không có ch cho nó đáp trong label nên nó ph i đáp vào Control k đó, t c là txtTuoi. ỗ Khi ta đã cho TabIndex c a các Control nh ng giá tr k trên thì khi Form hi n ra Cursor s n m ẽ ằ ữ trong TextBox txtTen vì m c d u lblTen có TabIndex nh nh t(0), nó không ph i là ch Cursor đáp lên đ N u b n không mu n Cursor ng ng l ế đó cho b ng False. Trong tr ch TextBox thì edit Property Enabled b ng False hay Property m t TextBox b ng False thì TextBox tr nên m đi. ằ Nhân ti n ta edit thêm d u "&" ữ ở "Xuat" và "Viet vao dia". Sau n y ng ầ nút "Xuat". N u nh trong Form b n có nhi u Textbox quá, đ i nút Enter ra nút Tab cho t ng Textbox m t thì m t công quá. B n có th làm m t cái chung cho c Form. T c là nói r ng b n không c n bi t nút ể c đánh Enter v a m i đ ừ Tr ướ ế ạ ọ vi c n y đ d n Form gi ể ặ ệ ầ s tráo nút Enter thành Tab r i l ng l ng trao cho TextBox. B n có th thay th t ẽ event handler c a các TextBox b ng đo n mã nh sau: ạ ồ ẵ ằ ủ ư
ấ ứ ỗ ầ ằ ầ t mã, VB ạ ạ ả ạ Khi b n doubleClick lên b t c ch nào trên Form không có Control n m, l n đ u đ vi ể ế cho b n Private Sub Form_Load(). B n ph i click cái Combobox bên ph i, phía trên c a Code ủ ả Window, cho nó m ra và ch n Event KeyPress. ở ọ
Đem ra trình làng
ể ụ ệ ệ ạ File|Make MyFirstProg.exe. folder: Đ làm thành m t h s áp d ng EXE, b n dùng m nh l nh Menu Cho thêm chút h ộ ờ ng v c a cu c đ i tôi click Form r i edit Property Icon, ch n cho nó t ồ ộ ồ ơ ươ ị ủ ừ ọ
6
D:\Program Files\Microsoft Visual Studio\Common\Graphics\Icons\Misc
ng m t c ộ i. R i b m m nh l nh Menu ệ ặ ườ ươ ệ i đây: File|Save Project. m t icon hình g Khi dùng Explorer đ xem các h s c a MyFirstProg.vbp b n s th y nh d ạ ẽ ấ ồ ấ ồ ơ ủ ể ư ướ
tôi dùng m t folder khác thay vì VB98 đ ch a d án MyFirstProg.vbp. H s ộ ẽ ể ứ ự ệ i đ t lên ộ ạ ồ ơ i. ớ ặ ườ ặ ươ ớ
ồ ơ MyFirstProg.zip, nén chung t ể ể ạ ố ấ ả ẽ ạ ồ ơ ự t c các h s nói trên trong d án
ngay trong VB IDE b n có th ch y ch ng trình b ng cách dùng m nh l nh Menu Run| ể ạ ươ ệ ệ ằ ạ ờ Đáng l MyFirstProg.vbw là Workspace (ch làm vi c) dành cho VB, ta không nên đ ng t ộ ỗ ng m t c B n có th làm m t Shortcut cho MyFirstProg.exe v i cái icon hình g Desktop đ ch y bên ngoài IDE c a VB. ủ Có l b n mu n Download h s : MyFirstProg.vbp. Bây gi Start hay b m ấ F5.
ạ
ủ
ể
ả
ằ
B n cũng có th Click lên d u tam giác ch v bên ph i (nút Play c a cassette) n m trong ỉ ề toolbar ngay phía d
ấ i VB menu.
ướ
Cách nén các files trong m t folder thành m t zip file duy nh t ấ
ộ
ộ
ả ầ ề ể ở c h t, trong Window Explorer b n ch n nh ng files ọ ữ ạ ọ ạ ướ ế ằ ộ ố ế ứ ỗ i. B n ch n nhi u files b ng cách đè nút ạ ấ ọ Ctrl trong khi click lên tên t ng file Shift, thay vì nút Ctrl, thì c m i lúc b n click, Window Explorer s select ằ ừ ẽ ể ữ ạ ộ t c c các files trong m t VB6 project đ g i qua Th y/Cô. ng h p b n s dùng khi Zip t ớ t c các files trong m t folder. Đây là ấ ả ể ở ộ ạ ẽ ấ ả ườ ợ
ầ ọ Add to ể ạ ấ ồ
7
ng trình Winzip. ươ ư ạ ấ Đ g i nhi u files b ng cách đính kèm (attach) m t Email trên Internet ta c n ph i nén các files y ộ ằ thành m t file duy nh t, g i là Zip file. Tr ấ b n mu n Zip chung l ạ ề ạ m t. N u b n đè lên nút ạ ộ c m t d c tên các files n m gi a tên hai files b n click m i nh t. Ngoài ra b n cũng có th dùng ạ ả ộ ọ Menu Command Edit | Select All, hay Ctrl+A đ select t ể tr Sau khi đã select các file r i, b n right click lên các file y đ context menu pop-up. Ch n Zip. N u b n không th y pop-up command Add to Zip thì là b n ch a install ch ạ ế Trong tr ng h p y, download Winzip t Internet và install. ấ ợ ấ ườ ừ
8
t các ph n c a VB6 IDE, và th làm ạ ầ ủ ử b n th kh i đ ng VB6, đi d o quanh nó đ th bi Bây gi ể ử ế theo nh bài n y. N u có th c m c gì thì h i Tutor c a b n. ủ ạ ắ ử ở ộ ế ờ ạ ư ầ ắ ỏ