Mẹo vặt Visual Basic 6

Tổng hơp Mẹo vặt Visual Basic 6

pdf22 trang | Chia sẻ: longpd | Lượt xem: 2502 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Mẹo vặt Visual Basic 6, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
MUÅC LUÅC Laâm cho Form luön luön hiïån ra möåt chöî vaâ cuâng möåt cúä................................... 2 Duâng Event naâo àïí update Form?........................................................................ 3 Laâm sao ta biïët möåt Form àaä àûúåc Loaded? ...................................................... 3 Laâm möåt Form giöëng möåt Form coá sùén ................................................................ 4 Laâm cho Controls biïën mêët................................................................................... 5 Choån nhiïìu Controls nhû möåt nhoám .................................................................... 5 Choån nhiïìu haâng trong ListBox ........................................................................... 5 'Sort' caác haâng trong möåt Listbox ......................................................................... 6 Sùæp ngay cöåt nhûäng chûä trong caác haâng khaác nhau cuãa Listbox. ....................... 6 Drag möåt haâng tûâ Listbox nêìy boã vaâo Listbox khaác ............................................ 6 Laâm sao biïët Drag Source laâ control naâo ............................................................. 7 In nhûäng haâng àûúåc choån cuãa möåt ListBox.......................................................... 8 Bùæt buöåc user phaãi click ComboBox àïí choån möåt haâng ....................................... 8 Laâm möåt Control hiïån ra trïn moåi trang cuãa Tab Control.................................. 8 Sùæp xïëp thûá tûå caác TextBox cho Data Entry ........................................................ 9 Laâm sao cho data vaâo trong ListBox hay ComboBox.......................................... 9 Sao khöng thêëy hònh trong CommandButton? .................................................. 10 Laâm sao àùåt icon lïn Toolbar laâm shortcut cho möåt menu command cuãa VBIDE? ................................................................................................................ 10 Caác daång cuãa Ngaây vaâ Thò giúâ ............................................................................ 10 Laâm sao àoåc tûâ möåt Text file............................................................................... 14 Laâm sao chûáa vaâo möåt Text file .......................................................................... 14 Caách thûác Log möåt dûä kiïån vaâo möåt Text file ?.................................................. 15 Caách thûác àoåc/viïët value cuãa möåt Variable tûâ möåt "ini" file ? ........................... 17 Àöíi Enter key ra Tab key.................................................................................... 18 Àöíi daång MousePointer ra àöìng höì caát .............................................................. 19 Kiïëm Help cho caác Functions.............................................................................. 19 Duâng Docket Dot Matrix Printer........................................................................ 20 Cho Application möåt Icon.................................................................................... 21 VB shorcut Keys .................................................................................................. 21 Laâm hiïån ra möåt Form khaác Giaã sûã baån àang úã trong Form1 vaâ muöën laâm cho Form2 hiïån ra, haäy sûã duång: Form2.Show Khi muöën dêëu Form2, duâng: Form2.Hide Khi möåt Form àûúåc 'Show' lêìn àêìu tiïn, noá àûúåc 'Load' (cho thaânh hònh) vaâ 'Show' ngay sau àoá. Khi möåt Form àaä coá röìi, tûác laâ àaä àûúåc 'Load' röìi, luác baån 'Hide' noá cq•ng giöëng nhû keáo möåt têëm maân che noá laåi. Kïë àoá, khi baån 'Show' noá cq•ng giöëng nhû múã maân ra, khöng coá gò aãnh hûúãng Form. Baån coá thïí cho Form biïën mêët bùçng caách 'Unload' noá, nhû: Unload Form2 Lêìn túái khi baån 'Show' noá, Form seä àûúåc 'Load' trúã laåi. Möîi khi Form àûúåc 'Load', noá 'execute' sub Form_Load. Form_Load laâ núi baån viïët caác 'statements' àïí 'initialise' Form, tûác laâ nhûäng gò cêìn phaãi àûúåc sùæp xïëp cho sùén saâng trûúác khi Form thaânh hònh. Do àoá baån phaãi quyïët àõnh khi naâo duâng Unload hay Hide àï? Laâm cho Form biïën mêët. Nhúá rùçng möîi khi Form àûúåc 'Load' thò noá 'initialise' vaâ mêët möåt ñt thò giúâ. Nïëu baån muöën laâm cho möåt Form hiïån ra vaâ khiïën noá daânh nhêån têët caã 'keystrokes' vaâ 'mouse clicks' thò duâng: Form2.Show vbModal Ngay sau khi Form2 àûúåc 'Show' dûúái daång vbModal, noá daânh ngay CPU process, àïën àöíi statement nùçm ngay dûúái àoá trong Form1 cq•ng àúåi cho àïën khi Form2 biïën mêët bùçng Unload hay Hide múái chaåy tiïëp àûúåc. Nïëu baån muöën Form2 hiïån ra trong Modeless (khöng phaãi Modal) nhûng luön luön nùçm trïn Form1, ngay caã khi Form1 trúã thaânh active, duâng: Form2.Show ,Me ' Me laâ Form1 Laâm cho Form luön luön hiïån ra möåt chöî vaâ cuâng möåt cúä trong Sub Form_Load, duâng Move fLeft, fTop, fWidth, fHeight Àïí nhúá thûá tûå caác parameters trong Sub Move haäy nhúá toåa àöå coá X,Y . trong Sub Move ta noái àïën võ trñ X,Y ( fLeft, fTop) röìi cúã X,Y (fWidth, fHeight). Move laâ möåt method coá thïí àûúåc duâng cho Form hay Control vaâ rêët hiïåu quaã. Nïëu muöën Frame1 luön luön nùçm úã àónh traái, duâng: Frame1.move 0,0 Nïëu muöën chöî vaâ cúã cuãa Form 'configurable' (user coá thïí thay àöíi) thò chûáa caác dûâ kiïån àoá trong Registry röìi àoåc fLeft, fTop, fWidth, fHeight tûâ Registry trong Sub Form_Load. ( xem Function GetSetting ) Àïí cho Form2 hiïån ra bïn phaãi vaâ ngang haâng vúái Form1, trom Sub Form_Load cuãa Form2 duâng: Sub Form_Load() Move Form1.Width, Form1.Top End Sub Duâng Event naâo àïí update Form? Möîi khi trúã laåi möåt Form sau khi laâm viïåc úã möåt Form khaác, ta muöën 'update' möåt söë dûä kiïån àang àûúåc 'display' àïí phaãn aãnh nhûâng thay àöíi vûâa múái xaäy ra. Àïí code trong Sub Form_Activate. Laâm sao ta biïët möåt Form àaä àûúåc Loaded? Duâng Function sau àêy cuãa Microsoft: Function FormIsLoaded(MyFormName As String) As Boolean ' Determines if a form is loaded. Dim i As Integer FormIsLoaded = False For i = 0 To Forms.Count - 1 If Forms(i).FormName = MyFormName Then FormIsLoaded = True Exit Function ' Quit function once form has been found. End If Next i End Function Ài qua hïët collection cuãa Forms àïí xem coá Form naâo truâng tïn. Caách duâng: If FormIsLoaded("Form2") then MsgBox "Form2 is already loaded" End If Khöng cho User Unload Form bùçng caách click dêëu X Nhiïìu khi baån muöën thu xïëp moåi chuyïån àaâng hoaâng trûúác khi Unload möåt Form nïn baån laâm möåt Exit hay Close button cho user duâng. Àïí laâm mêët dêëu X phña àónh phaãi, 'set' Property ControlBox cuãa Form ra False. Nïëu laâm thïë nêìy coá àiïím bêët lúåi laâ khi 'minimize' Form, ta khöng thêëy icon cuãa Form. Coá möåt caách vêîn àïí nguyïn dêëu X, nhûng khi user click noá thò ta check 'unloadMode' trong Sub Form_QueryUnload àïí biïët lyá do taåi sao Form phaãi unload. Trong Sub Form_Unload coá thïí 'assign' Cancel ra True àïí 'abort' Unload. Nïëu baån muöën khöng cho user minimise Form thò set Property MinButton ra False. Laâm möåt Form giöëng möåt Form coá sùén Nhiïìu khi baån muöën laâm möåt Form giöëng giöëng möåt Form àaä coá sùén trong Project. Thñ duå baån muöën 'duplicate' Form2 àïí laâm nïn möåt Form3 àïí sau àoá sûäa chûäa noá chuát àónh. Baån laâm nhû sau: 1. Múã Form2 ra 2. Duâng Properties àïí àöíi tïn Form2 ra Form3 3. Duâng File | Save As menu command àïí chûáa Form nêìy dûúái tïn Form3.frm Bêy giúâ baån coá thïm Form3 trong Project, trong khi Form2.frm vêîn coân àoá nhûng khöng coân thuöåc vïì Project nûäa. Nïëu baån muöën cho noá vaâo Project trúã laåi thò duâng Project | Ad File .. menu command àïí choån Form2.frm boã vaâo Project. Laâm cho Controls biïën mêët Baån laâm cho möåt Control nhû Label, Textbox, ListBox .v..v biïën mêët bùçng caách cho Property 'visible' trúã nïn False, nhû: TxtName.visible = False Duâng TxtName.visible = True àïí laâm Textbox txtName hiïån ra trúã laåi. Khi muöën cho möåt nhoám Controls biïën mêët hay hiïån ra cuâng möåt luác, chûáa têët caã caác Controls êëy trong möåt container nhû Frame hay PctureBox, röìi chó cêìn laâm cho container êëy visible hay khöng. Invisible Control rêët tiïån duång khi ta duâng noá àïí chûáa dûä kiïån. Möåt TextBox taân hònh coá thïí Databound àïí lùång leä chûáa data lêëy tûâ möåt recordField cuãa current Record cho baån duâng. Baån cq•ng coá thïí 'assign' (cho noá bùçng) möåt value vaâo möåt Control taân hònh. Nïëu Control êëy Databound, value seä àûúåc viïët vaâo database khi àuáng luác. Choån nhiïìu Controls nhû möåt nhoám Choån nhiïìu Controls rêët tiïån cho viïåc assign möåt property cho caã nhoám qua Properties Window. Àïí choån nhiïìu Controls nhû möåt nhoám baån coá thïí 'rubber band' (quêën dêy thun) caã nhoám bùçng caách 'drag' con troã thaânh möåt hònh chûâ nhêåt bao caã nhoám laåi. Nïëu caác Controls êëy nùçm trong möåt container nhû Frame hay Picture box, trûúác hïët baån phaãi 'click' Form röìi kïë àoá àeâ nuát 'Ctrl' xuöëng trong khi 'rubber band' nhû noái trïn. Möåt khi caác Controls trong möåt nhoám àaä àûúåc choån röìi ta coá thïí duâng menu Format command àïí Align (ngang haâng) chuáng hay laâm cho chuáng cuâng cúã. Choån nhiïìu haâng trong ListBox Muöën cho user choån nhiïìu haâng trong Listbox ta phaãi set Property Multiselct cuãa Listbox ra Extended. Sau àoá user coá thïí choån nhiïìu haâng bùçng caách bêëm nuát Shift hay Ctrl trong khi Click nhûäng haâng. Nhúá laâ nïëu bêëm nuát Shift thò choån nhûäng haâng liïn tuåc giûäa hai caái click, coân bêëm nuát Ctrl thò choån hay khöng choån thïm tûâng haâng möåt. Möîi haâng trong Listbox List1 àûúåc cho thûá tûå tûâ 0 àïën List1.ListCount-1. Khi haâng i àûúåc selected thò List1.Selected(i) = True. Muöën 'deselect' (khöng choån) haâng àoá thò duâng List1.Selected(i) = False. 'Sort' caác haâng trong möåt Listbox Nïëu ta muöën nhûäng haâng trong möåt Listbox àûúåc sorted theo mêîu tûå (alphabetical order) thò khi thiïët kïë (at design time) set Property Sorted cuãa Listbox ra True. Trong khi xûã lyá ta khöng thay àöíi value cuãa Property Sorted àûúåc. Nïëu möåt Listbox àaä lúä coá Property Sorted = False maâ ta muöën Sort noá trong khi xûã lyá thò laâm sao? Baån àùåt thïm lïn Form möåt Listbox khaác. Listbox nêìy coá Property Sorted = True. Khi naâo muöën Sort caác haâng trong Listbox thûá nhêët ta laâm nhû sao: 1. Cheáp têët caã moåi haâng tûâ Listbox thûá nhêët qua Listbox thûá nhò, caác haâng seä àûúåc sorted tûå àöng trong Listbox thûá nhò. 2. Clear Listbox thûá nhêët 3. Cheáp moåi haâng tûâ Listbox thûá nhò qua Listbox thûá nhêët. Nhúá àûâng cho user thêëy Listbox thûá nhò bùçng caách set Property Visible cuãa noá ra False (taân hònh). Lûu yá Clear möåt Listbox trûúác khi cho möåt söë haâng múái vaâo vaâ khöng muöën giûä nhûäng haâng cq• bùçng caách duâng method Clear nhû List1.Clear. Sùæp ngay cöåt nhûäng chûä trong caác haâng khaác nhau cuãa Listbox Nïëu muöën têët caã caác chûä cöåt thûá 8 cuãa caác haâng trong möåt Listbox àûáng thùèng haâng chiïìu cao (vertically) baån coá thïí set Font cuãa Listbox ra Courier, möåt loåai Fixed Font. Têët caã caác chûä cuãa Fixed Font nhû Courier àïìu coá cq•ng chiïìu röång (character width). Ngûúåc laåi trong möåt Proportional spacing Font nhû "MS Sans Serif" chiïìu röång cuãa chûâ 'ñ nhoã hún cuãa chûâ 'm'. Nïëu baån muöën duâng Tab trong Listbox thò phaãi goåi möåt API Function àïí laâm cho Listbox chõu nhêån Tab (support Tab feature). Sùæp ngay cöåt nhûäng chûä trong caác haâng khaác nhau cuãa Listbox. Nïëu muöën têët caã caác chûä cöåt thûá 8 cuãa caác haâng trong möåt Listbox àûáng thùèng haâng chiïìu cao (vertically) baån coá thïí set Font cuãa Listbox ra Courier, möåt loåai Fixed Font. Têët caã caác chûä cuãa Fixed Font nhû Courier àïìu coá cq•ng chiïìu röång (character width). Ngûúåc laåi trong möåt Proportional spacing Font nhû "MS Sans Serif" chiïìu röång cuãa chûâ 'ñ nhoã hún cuãa chûâ 'm'. Nïëu baån muöën duâng Tab trong Listbox thò phaãi goåi möåt API Function àïí laâm cho Listbox chõu nhêån Tab (support Tab feature). Drag möåt haâng tûâ Listbox nêìy boã vaâo Listbox khaác Giaã sûã baån muöën Drag möåt haâng tûâ List1 boã vaâo List2 vaâ display noá úã cuöëi List2. Ta seä duâng Mousedown Event cuãa List1 maâ Drag. Khi bùæt àêìu Drag ta muöën MousePointer àöíi ra hònh möåt trang giêëy. Do àoá ta phaãi Browse directory àïí cho vaâo Property DragIcon cuãa List1 tïn möåt Icon File. Baån coá thïí vaâo Folder C:Program File\Microsoft Visual Studio\Common\Graphics\IconsDragDrop lïí choån möåt Icon File. Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) List1.Drag ' Bùæt àêìu drag End Sub Private Sub List2_DragDrop(Source As Control, X As Single, Y As Single) ' Source úã àêy laâ List1 List2.AddItem Source.Text ' Boã haâng tûâ List1 vö cuöëi List2 Source.RemoveItem Source.ListIndex ' Lêëy haâng ra khoãi List1 List2.Listindex = List2.Listcount-1 ' Hilight haâng cuöëi vaâ laâm cho noá àûúåc display End Sub Laâm sao biïët Drag Source laâ control naâo Ta coá thïí duâng Function Typename nhû: TypeName(Source) àïí xem noá laâ "ListBox" hay "TextBox" etc..hay duâng TypeOf nhû: If TypeOf Source Is ListBox Then Msgbox " Drag source is a ListBox" End If Ta cq•ng coá thïí duâng Name cuãa Source nhû: If Source.Name = "List1" thenMsgBox "Drag source is List1" End If Ngoaâi ra ta cq•ng coá thïí duâng Property Tag cuãa Source Control àïí chûáa möåt biïåt danh vaâ duâng giöëng nhû tïn cuãa Drag Source nhû: If Source.Tag = "MYLIST1" then MsgBox "Tag of Drag Source is: " & Source.Tag End If In nhûäng haâng àûúåc choån cuãa möåt ListBox Ta duâng Printer Object. Raáp têët caã nhûäng haâng àûúåc choån laåi thaânh möåt text string daâi, thïm vaâo cuöëi möîi haâng laâ Carriage Return / LineFeed ( vbCrLf ) . Dim i strOut = "" ' Initialise Output string khöng coá gò caã For i=0 to List1.Listcount-1 If List1.Selected(i) then strOut = strOut & List1.List(i) & vbCrLf End if Next Printer.Print strOut ' Gúãi text String ra Printer Printer.EndDoc ' Bùæt àêìu in ra Nïëu baån muöën in tûâng haâng thò duâng: Printer.Print List1.List(i) ' Khöng cêìn phaãi duâng vbVrLf Muöën in chûä àêåm thò múã BOLD lïn bùçng: Printer.FontBold = True vaâ khi naâo muöën tùæt chûä àêåm thò duâng: Printer.FontBold = False Bùæt buöåc user phaãi click ComboBox àïí choån möåt haâng Khi Form múái hiïån ra, nïëu àaä coá sùén möåt haâng chûä nùçm trong ComboBox, maâ àoá àuáng laâ haâng user muöën duâng, ta khöng coá dõp àïí duâng Event Click cuãa ComboBox àïí laâm chuyïån gò tuây thuöåc vaâo haâng maâ user àaä choån. Möåt maánh lúái laâ trûúác khi cho caác haâng vaâo ComboBox ta àïí möåt haâng tröëng, thñ duå nhû: Combo1.AddItem " " ComboBox seä nhû tröëng khöng khi Form múái hiïån ra, bùæt buöåc user phaãi choån möåt haâng chúá khöng duâng haâng àêìu 'by default' (tûå àöång coá nïëu khöng laâm gò). Laâm möåt Control hiïån ra trïn moåi trang cuãa Tab Control Möîi trang cuãa Tab Control chûáa riïng nhûäng Control cuãa noá. Nïëu baån muöën möåt Textbox, Listbox hay CommandButton hiïån ra trïn moåi trang cuãa Tab, baån taåo control àoá bïn ngoaâi Tab vaâ keáo noá vaâo àùåt lïn trïn Tab. Nïëy Control nùçm phña dûúái Tab, duâng VBIDE menu Comand "Format | Order | Bring to Front" àïí mang Control ra phña trûúác. Sùæp xïëp thûá tûå caác TextBox cho Data Entry Khi user àiïìn caác dûä kiïån vaâo möåt Form (Data Entry), user rúâi möîi TextBox bùçng caách bêëm nuát Tab. Kïë àoá MouseCursor nhaãy àïën TextBox coá Property TabIndex value theo thûá tûå sau TabIndex value cuãa TextBox vûâa rúâi khoãi. Thûúâng thûúâng ta cho TabIndex value theo thûá tûå tûâng cùåp LblName, txtName röìi lblAddress, txtAddress, v.v. coá TabIndex values thñ duå nhû 1,2,3,4. Khi txtName (TabIndex=2) mêët Focus, mouseCursor dúâi àïën lblAddress (TabIndex=3) , nhûng vò lblAddress laâ möåt Label nïn khöng chûáa mouseCursor àûúåc, do àoá mouseCursor nhaãy àïën txtAddress (TabIndex=4). Nïëu Caption cuãa lblAddress coá möåt character underlined, nhû lblAddress.Caption = "Add&ess" ' character "e" underlined khi user bêëm Alt+e bêët cûá luác naâo mousePointer seä nhaãy àïën lblAddress nhûng röët cuöåc rúát vaâo TextBox kïë àoá, tûác laâ txtAddress trong trûúâng húåp nêìy. Nïëu baån khöng muöën mousePointer àaáp vaâo möåt TextBox naâo set Property TabStop cuãa noá ra False. Baån cq•ng coá thïí khöng cho user thay àöíi dûä kiïån úã möåt TextBox bùçng caách set Property Enabled ra False hay Locked ra True. Laâm sao cho data vaâo trong ListBox hay ComboBox Khi Design ta coá thïí duâng Property List cuãa ListBox hay ComboBox àïí àaánh vaâo caác doâng data. Möîi khi xuöëng haâng phaãi nhúá duâng Ctrl+Enter chúá khöng phaãi Enter, nïëu khöng VBIDE tûúãng laâ baån àaä chêëm dûát data entry. Möåt caách khaác àïí cho data vaâo ListBox hay ComboBox laâ duâng Method AddItem trong Sub Form_Load, nhû: Sub Form_Load() Dim i For i=1 to 10 List1.AddItem "Line " & CStr(i) Next lstState.AddItem "NSW" lstState.AddItem "VIC" lstState.AddItem "QLD" lstState.AddItem "SA" lstState.AddItem "WA" lstState.AddItem "TAS" End Sub Sao khöng thêëy hònh trong CommandButton? Baån duâng Properties Window àïí àùåt möåt Picture vaâo möåt CommandButton bùçng caách Browse vaâ choån möåt Image File. Nhûng baån khöng thêëy Picture àêu caã. Baån coân cêìn phaãi set Propety Style cuãa CommandButton ra "Graphical", thay vò "Standard". Laâm sao àùåt icon lïn Toolbar laâm shortcut cho möåt menu command cuãa VBIDE? Duâng Menu command View | Toolbars | Customize àïí display Dialog Customize. Kïë àoá choån Tag Commands, bïn traái seä laâ möåt Listbox chûáa danh saách caác Categories vaâ bïn phaãi laâ nhûäng Commands thuöåc vïì Category àang àûúåc highlighted. Thûã select tûâng Category àïí tòm trong Listbox bïn phaãi caái Command coá icon maâ baån muöën. Drag icon àoá lïn Toolbar. Nhên dõp nêìy baån coá thïí boã möåt icon coá sùén trïn Toolbar bùçng caách Drag noá ra chöî khaác. Caác daång cuãa Ngaây vaâ Thò giúâ Duâng Function Format àïí lêëy ngaây giúâ theo daång baån muöën. Thñ duå: strToday = Format (Now(), "ddd dd-mmm-yyyy hh:nn:ss") · Now() cho ta hiïån giúâ (realtime lêëy tûâ àöìng höì cuãa CPU) · ddd cho Mon, Tue .vv.. · mmm cho Jul, Feb .vv.. Nhúá duâng "nn" cho phuát. Hai caách duâng Timer 1. Timer coá Interval tñnh bùçng milliseconds. Khi Timer1 àûúåc Enabled (tûác laâ Timer1.Enabled=True) noá seä chaåy Sub Timer1_Timer möîi Interval msecs. Thñ duå ta muöën Label1 chúáp tùæt (blink): Timer1.Interval = 500 ' Nûäa giêy Timer1.Enabled = True ' Bùæt àêìu chaåy Timer1 cho hïët interval Sub Timer1_Timer() Label1.Visible = NOT Label1.Visible End Sub Cûá möîi nûäa giêy hïí Label1 àang hiïån ra thò cho noá taân hònh vaâ ngûúåc laåi. Khi naâo muöën ngûng chúáp tùæt thò duâng: Timer1.Enabled = False Label1.Visible = True 2. Àïílaâm möåt viïåc trong tûúng lai, ta cq•ng duâng Timer nhûng ngay trong Sub Timer1_Timer ta àïí cêu Timer1.Enabled = False àïí tùæt Timer1 sau khi laâm xong cöng chuyïån. Thñ duå: Sub Timer1_Timer() Timer1.Enabled = False ' Ngûng Timer1 ' Àïí code laâm cöng chuyïån taåi àêy End Sub Àúåi möåt chuát Coá khi ngay úã giûâa code baån muöën àúåi (wait) möåt chuát. Baån coá thïí laâm theo baâi mêîu cuãa Microsoft nhû sau: Dim PauseTime, Start, Finish, TotalTime ' Code àang laâm viïåc nûäa chûâng PauseTime = 5 ' Set duration in seconds. Start = Ti
Tài liệu liên quan