You are on page 1of 11

Chng Ba - Form v cc Controls thng thng

Hu ht cc chng trnh VB6 u c t nht mt Form. Khi ta chy chng trnh, Form ny s hin ra
trc ht ta ra lnh n lm chuyn g. Ci Form trng khng ch lm c g nhiu, nn ta t ln Form nhng controls nh Textbox(hp nh ch vo), Label(nhn), Commandbutton(nt bm mnh lnh), .v.v.. Cc controls cho ta enter cc d kin chng trnh dng x l, v cc controls cng hin th (display) kt qu cho chng ta xem.

Sp t controls ln Form
Ta hy bt u thit k mt chng trnh mi (New Project) bng cch chn Standard EXE, mi trng trin khai lp trnh (IDE) cho bn sn mt Form tn l Form1. Mun t mt Control ln Form, click hnh ci Control trong Toolbox ri Drag (bm nt tri ca con chut ri ko cho thnh hnh ch nht trc khi bung nt tri ra) con chut trn Form v thnh c ca Control. Mt cch khc t mt control ln Form l doubleclick ci Control trong Toolbox, mt hnh control s hin ra trn Form. K bn di control i n ch mnh mun v resize n. Nu bt c lc no bn khng thy Ti ngh (Toolbox) nm bn tri, bn c th dng mnh lnh Menu View|Toolbox bt n hin ra. C mt cch khc l click ln toolbox icon trn toolbar chnh ca VB6.

Nn nh rng Toolbox cng l mt window nh cc window khc. Khi n hin ln ri bn c th nm (bm nt tri ca con chut v gi nh vy ch khng bung ra) title n di i ni khc. Bn c th ng n bng cch click ln du x gc phi pha trn. Nu right click trn Toolbox, n s display context sensitive menu, trong c property dockable (c th u bn) . Nu mt window l dockable, sau khi bn di n i khi vi tr docked bnh thng ca n, bn c th dock n li nh c bng cch double click ln title ca n.

Resize v di chuyn control


Khi bn select mt control (click ln n), chung quanh control s hin ra resize handle, 8 nt en dc theo chu vi ca control.

Click ln cc nt en ca resize handle, bn c th resize control. C mt cch khc resize control l dng Shift + ArrowKey. Bm nt Shift trong khi bm mt arrow key, control s ln ra hay thu hp theo chiu ca ArrowKey. Lu : Mt s control c kch thc ti thiu, bn khng th lm cho n nh hn c. Th d nh Combobox, n phi cao display mt hng text. Tng t nh th, bm nt Ctrl trong khi bm mt arrow key, control s di chuyn theo chiu ca ArrowKey.
1

Ngoi ra, nn nh rng trong lc chng trnh chy (at run-time), trong code ta c th thay i kch thc v v tr cc controls d dng, thm ch c th lm cho chng hin ra hay bin mt bng cch sa i value cc property left, top, width, height v visible ca cc controls.

Alignment Grid
gip bn sp t ngay ngn cc controls trn mt form, VB6 cho bn Alignment Grid. N l nhng du en ca cc hng dc v xui trn form. Bn c th lm cho cc du en ca grid trn form bin mt bng cch dng menu command Tools | Options display Option Dialog, k chn Tag General v clear checkbox "Show Grid":

Bn cng c th nhn dp ny thay i khong cch chiu rng (Width) v chiu cao (Height) ca cc chm en ca grid. Kch thc nh nht ca Width hay Height l 24. Hy so snh hai trng hp form c v khng c Show Grid nh di y:

Control Locking
Mt khi bn sp t kch thc v v tr ca cc control trn form ri, rt d ta tnh c thay i cc c tnh y v v click ln mt control. Do VB6 cho ta Menu command Format | Lock Controls kha chng li. Sau khi kha, ci hnh ng kha trn menu b chm xung.

Nu sau ny bn mun thay i kch thc hoc v tr ca chng th nh dng Menu command Format | Lock Controls li. Sau khi m kha, ci hnh ng kha trn menu hin ra bnh thng.

Ci t cc Properties ca Form
Nhiu property ca mt form nh hng n din mo vt l (physical appearance) ca n. Property Caption s quyt nh text c hiu th trong title. Nu Property BorderStyle ca form khng phi l Sizable th User khng th resize form at run-time. Property Icon quyt nh hnh icon uc dng trong title ca form, nht l khi form thu nh (minimized). Nu bn khng mun cho php User minimize hay maximize form th set value ca property MinButton, MaxButton ra False. Nu property ControlBox l False th form s khng c nt minize, maximize hay close (x) trn gc phi ca n, ng thi form cng khng display c icon bn gc tri title nh trong hnh di y:

V tr u tin (top,left) ca form c th c thay i trong design time bng cch di chuyn hnh nh ca n trong window Form Layout:

Property WindowState xc nh Form s c kch thc bnh thng (normal=0), hay minimized (=1), maximized =(2). Lu l property Font ca Form s c cc control nm trn n tha k. Tc l khi bn t mt control ln form, property Font ca control y s t ng tr nn ging y nh ca form.

Vi Event thng dng ca Form


Nhn t mt phng din, Form cng ging nh Control. Ta c th instantiate mt form nhiu ln c nhiu form tng t nhau. Trong th d di y, ta instantiate Form2 hai ln c MyForm v YourForm:
Private Sub CmdCreateForms_Click() Dim MyForm, YourForm Set MyForm = New Form2 MyForm.Caption = "This is My Form" MyForm.Show MyForm.Move 1000, 1000 Set YourForm = New Form2 YourForm.Caption = "YOUR FORM IS HERE" YourForm.Show YourForm.Move 2000, 2000 End Sub

Mt Form cng c nhiu Events rt hu dng. Form_Initialize: Event ny xy ra trc nht v ch mt ln thi khi ta instantiate form u tin. Ta dng Form_Initialize event thc hin nhng g cn phi lm chung cho tt c cc instances ca form ny. Form_Load: Event ny xy ra mi ln ta instantiate mt form. Nu ta ch dng mt instance duy nht ca mt form trong chng trnh th Form_Load coi nh tng ng vi Form_Initialize. Ta dng Form_Load event initialise variables, controls v.v. cho instance ny. Bn trong Form_Load bn khng th dng Setfocus cho mt control no trn form v form cha hn thnh hnh (ra i). Mun lm vic y bn phi delay (tr hon) mt cht xu bng cch dng Control Timer i cho Form_Load c hon tt. Th d:

Private Sub Form_Load() Timer1.Interval = 500 Timer1.Enabled = True End Sub Private Sub Timer1_Timer() Timer1.Enabled = False ' Timer1_Timer only execute once txtName.Setfocus ' Make Tab Cursor start at TextBox txtName End Sub

Form_Activate: Mi ln mt form tr nn active (current) th n generate mt Activate event. Ta c th dng event ny refresh display trn form. Form_QueryUnload: Khi User click du x pha trn bn phi close form th n generate QueryUnload event. Syntax ca Sub ny nh di y:

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) 4

End Sub

Event ny cho ta mt dp cancel Close action ca form (tc l khng cho User close form) bng cch set Cancel bng 1. UnloadMode cho ta bit ai, task hay form no mun close form ny. Ngoi ra, bn cng nn bit rng mt form t ng Load hay tr nn active nu bn nhc n n, th d nh dng Form2.List1. Khi mt form c loaded ri bn c th hide (lm cho bin mt) n. K , khi bn show form ra tr li th form khng c g thay i. Nhng nu bn Unload mt form (th d bng cch dng Unload Form2 ), ri sau load tr li bng cch dng Form2.Show chng hn, th Form phi tri qua qu trnh Form_Load, v d nhin form mt tt c nhng g c trc y. Ngoi ra, Hide/Show mt form c loaded ri th rt nhanh, cn Unload/Load th mt th gi hn. Khi bn Show mt Form cha hin hu th form s c loaded v show. i khi bn mun Load mt form, ri lm vic vi n trc khi Show, trong trng hp bn dng Load Form2 ri mt chp sau dng Form2.Show.

MDI Form
i khi bn mun c mt MDI form, tc l mt form c th cha nhiu form con bn trong. Dng MDIform ny thng c dng trong cc application nh wordprocessor c th m nhiu document cng mt lc, mi document c hin th trong mt form con. c mt MDIForm bn cn phi dng menu command Project | Add MDI Form. Mi VB6 project ch c th c ti a mt MDIform. Mun mt form tr thnh mt form con bn set property MDI Child ca n thnh True. At run-time bn khng th hide (bin n thnh invisible) mt MDIChild form, nhng c th minimize n. Nu bn tht s mun hide n th phi dng mnh li l cho n v tr (top,left) s m ln hn kch thc n n nm ngoi tm hin th ca form. Trong mt chng trnh dng MDI Form, khi bn click MDI Form n khng nhy ra pha trc v che cc form con, nhng vn lun lun nm di.

Controls l g?
Controls va c hnh, va c code chy bn trong mt window nho nh, ging nh mt form. Khi ta lp trnh VB6 ta lp rp cc controls (l nhng vt dng tin ch) trn mt hay nhiu form c mt chng trnh nhanh chng. Ta giao dch vi mt control qua ba c tnh ca control: Properties: tp hp cc c tnh ca control m ta c th n nh lc design time hay run-time. C nhiu properties v din mo, nu ta thay i at design time s thy kt qu hin ra lp tc, th d Font hay mu sc. Methods: nhng g control thc hin uc, tc l nhng kh nng ca n. Events: nhng s c m control s thng bo cho chng ta bit khi n xy ra vi control. Khi mt event xy ra VB6 s x l mt Event Handler (th d nh Sub Command1_Click()), min l chng ta vit code sn trong . Nu khng c code th coi nh chng ta khng thm bit n cc event loi . C mt s Events m chng ta thng x l l: o Click : xy ra khi user click ln control. Ta thng dng n cho CommandButton v Listbox. o MouseDown, MouseUp : mi khi User bm mt mouse button l c mt MouseDown Event, khi User bung n ra th c mt MouseUp Event. Ta thng dng MouseDown Event Popup context sensitive menu hay bt u mt din bin Drag. Th d:

Private Sub Foods_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = vbRightButton Then ' if Right button was pressed 5

PopupMenu mnuActions ' popup a menu End If End Sub Private Sub DrinkList_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) DrinkList.drag ' Displaying a drag icon to start the drag process End Sub

l Click khng cho chng ta thm chi tit g v s c, trong khi MouseDown/MouseUp cho ta bit v tr ca cursor, button no ca Mouse c bm v lc y User c bm nt Shift, Ctrl hay Alt khng. Mi Click l i i vi mt cp MouseDown/MouseUp. Nu bn mun x l va Click ln MouseDown th phi cn thn. Th d bn mun va handle Click event va handle Mouse Drag th phi lm sao phn bit hai trng hp. Nu khng User ch mun thy kt qu ca Click m li thy control bt u display mt Drag icon th s bc mnh. KeyPress : xy ra khi user Press mt key. Ta thng dng n cho TextBox loi ra (filter out) cc keystrokes ta khng chp nhn. KeyPress cho ta ASCII value, mt con s c gi tr t 1 n 255, ca key. Trong th d di y, mt Enter key s c coi nh mt TAB key:
o

Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then KeyAscii = 0 ' Swallow the character to avoid side effect SendKeys "{TAB}" ' Emulate entering a TAB End If End Sub

KeyDown, KeyUp : mi KeyPress event l cho ta mt cp KeyDown/KeyUp event. KeyDown/KeyUp cho ta KeyCode v Shift value. detect Function key ta cn dng KeyDown event. Trong th d di y, ta display Function key User bm:
o

Private Sub Text3_KeyDown(KeyCode As Integer, Shift As Integer) If (KeyCode >= 112) And (KeyCode <= 123) Then MsgBox "You pressed the Function key: F" & Trim(Str(KeyCode - 111)) End If End Sub

GLotFocus : Control tr nn active khi n nhn c Focus. N s generate mt GotFocus Event. Ta c th dng n i mu background ca mt text box nh trong th d di y:
o

Private Sub Text2_GotFocus() Text2.BackColor = vbYellow End Sub

LLostFocus : Thng thng h mt Control GotFocus th trc c mt Control LostFocus. Ta c th dng Event ny Validate entry data hay thu xp cng chuyn cho mt control va mt Focus. Trong th d di y, nu User khng nh vo mt con s trong Textbox Text1 th s c thng bo v Tab Cursor s tr li Textbox Text1.
o

Private Sub Text1_LostFocus() If Not IsNumeric(Text1.Text) Then MsgBox "Please enter a number!" Text1.SetFocus End If End Sub

rDagDrop : xy ra khi ta drop mt ci g ln control . Parameter Source cho ta bit Control no c Drag v Drop. Nhiu khi mt control c th nhn drop t nhiu control khc nhau. Trong trng hp ta phi test xem hoc Control Type, hoc Name hoc Tag value ca Source control l g ty nghi x l. Trong th d di y, khi User drop mouse xung Textbox Text2, nu Source l mt Listbox, khng cn bit Listbox no, th ta copy dng c chn trong Listbox y qua Textbox Text2.
o

Private Sub Text2_DragDrop(Source As Control, X As Single, Y As Single) If TypeOf Source Is ListBox Then Text2.Text = Source.Text End If End Sub

TextBox
TextBox l control uc dng nhiu nht display text v nhn keystroke ca User sa i text c sn hay cho vo text mi. Property chnh v default ca Textbox l text, tc l thng thng Text2.text c th c vit tt l Text2. Ta c th disable (khin n bt lc, khng phn ng g ht v khng cho sa i) mt text box bng cch set Property Enable ra False (ch s b m i), hay Lock (khng cho sa i) mt text box bng cch set Property Locked ra True (ch khng b m). Text c th c Align (Alignment Property) display bn tri, chnh gia hay bn phi ca hp n.

Bn c th chn BackColor v ForeColor cho background v text ca TextBox. Dng Tag Palette khi chn mu c ng mt mu bn mun.

D nhin bn c th la chn Font v c ch cho Text vi Font Property. Bn gii hn s characters m User c th enter cho TextBox bng cch set MaxLength Property. Nu Property Multiline l True th User c th enter nhiu hng. At Design time, nu bn mun enter multiline th phi nh bm nt Ctrl khi press Enter mi khi xung hng. Nu khng VB6 IDE tng rng bn kt thc editing.

Mun assign cho text box multiline text th phi nht vo mi cui hng CarriageReturn v LineFeed characters. Th d nh:
Private Sub Command1_Click() Dim TextStr TextStr = "Bau ra bau lay ong cau" & vbCrLf ' Note: vbCrLf = chr(13) & chr(10) TextStr = TextStr & "Bau cau ca bong ngat dau kho tieu" Text1.Text = TextStr End Sub

Nu bn mun mch nc cho User v cch dng mt textbox no th c th dng Property ToolTipText n display mch nc mi khi mouse cursor nm ln textbox.

Dng Property TabIndex n nh th t cho Tab Cursor dng mi khi User bm nt TAB di TAB Cursor n Textbox k tip. Nu bn khng mun Tab Cursor dng mt TextBox no th set
8

Property TabStop n thnh False. Tab Cursor khng dng Textbox c Property Enabled bng False, nhng vn dng Textbox c property Locked bng True. Nu bn mun dng Textbox lm mt Password field th set Property PasswordChar bng "*". Lm nh th s p buc Textbox display mi character bng PasswordChar, tc l "*", ngi khc khng c c trong khi User enter mt Paswword.

Properties SelLength, SelStart v SelText Nu bn mun bit c tnh hnh hin thi ca Textbox: SelText cho bn dy ch ang c selected. SelStart cho bn v tr ca insertion point (ch cursor flashing). SelLength cho bit con s characters c selected. Nu bn mun sa i text trong Textbox: SelText cho bn nht vo mt dy ch. SelStart cho bn n nh v tr bt u ca dy ch bn sp select. SelLength n nh s characters bn mun chn, bt u t SelStart. Di y l mt th d trong ta highlight text tm c:
Private Sub Form_Click () Dim Search, Where ' Declare variables. ' Get search string from user. Search = InputBox("Enter text to be found:") Where = InStr(Text1.Text, Search) ' Find the given string in Text1.Text. If Where > 0 Then ' If found, Text1.SelStart = Where - 1 ' set selection start and Text1.SelLength = Len(Search) ' set selection length. Else MsgBox "String not found." ' Notify user. End If End Sub

CommandButton
CommandButton rt tin cho ta dng vo vic x l mt chuyn g khi User click ln button. Event ta dng thng nht cho CommanButton l Click. Ta dng Property Caption ca CommandButton enter ci g ta mun display trn button. Nu mun cho php User dng ALT+E ( nt Atl trong lc bm nt E) generate event click th nht du "&" trc ch E trong Caption ca button. Caption s display ch E vi mt gch di. Ngoi ra ta cng c th cho thm mt ci hnh vo CommandButton bng cch chn mt icon cho property Picture v set Property Style ra Graphical, thay v Standard.

Lc Run-time bn c th thay i hnh hay Caption ca CommandButton. Trong th d di y, Caption ca CommandButton CmdOperation flip-flop gia hai values Stop v Start:
Private Sub CmdOperation_Click() If CmdOperation.Caption = "&Stop" Then CmdOperation.Caption = "St&art" Else CmdOperation.Caption = "&Stop" End If End Sub

Label
Mc ch chnh ca Label l display, khng cho User Edit nh Textbox. Do ta c th dng Property Font, ForeColor v Backcolor lm cho n p. Ngoi ra Property BorderStyle c th cho Label lm xung nu bn set n bng Fixed Single. Nu set property BackStyle bng Transparent s trnh trng hp Backcolor ca Label lm cho khng p. Label cng c Property Tabindex. Nu bn mun dng ALT key mang Tab Cursor v mt Textbox, hy mt Label vi TabIndex bng TabIndex ca TextBox tr 1. Gi s Label c Caption l "&Address" th ALT+A s mang Tab Cursor v TextBox mu vng nh trong th d di y:

Ngoi ra nh rng bn c th thay i Caption ca Label lc run-time.

CheckBox
CheckBox c dng User xc nhn c c tnh no mt cch nhanh chng. Property Value ca CheckBox c th l Checked (lm cho hp vung c du, bng 1), Unchecked (lm cho hp vung trng khng, bng 0) hay Grayed (lm cho hp vung c du mu nht, bng 2). Mt khi bit rng CheckBox c Value bng 1, ta c th c Caption ca CheckBox dng nu cn.

10

Bn c th dng Property Alignment lm cho Caption ng bn phi (Left Justify) hay bn tri (Right Justify) ca hp vung.

OptionButton
OptionButton ( cn gi l RadioButton) c hnh trn vi mt chm gia, thay g hnh vung vi mt gch gia nh CheckBox. OptionButton lun lun c qui t thnh mt nhm, cha trong mt container. Container l mt Control c kh nng cha cc controls khc. Frame, PictureBox, hay chnh Form u l Container. Sau khi t mt Container ln Form, nu mun mt OptionButton ln Container, trc ht ta phi Select container, ri k chn OptionButton. S d, tt c OptionButtons phi nm trong mt container l v bt c lc no, nhiu nht l mt OptionButton trong container c value True (vng trn c chm gia). Mun bit mt OptionButton c tht s nm trong mt container, bn th ko ci container i ch khc. Nu OptionButton b di theo container th n nm trong container. Mt cch khc l th ko OptionButton ra khi container. Nu ko ra c th n khng nm trong container. Mun di chuyn mt OptionButton t container ny sang container khc, bn Cut OptionButton ri Paste n v container kia.

i khi mt container nm che trn mt control khc. Mun mang mt container ra pha sau cc controls khc bn Select container ri dng Menu command Format | Order | Send to Back.

11

You might also like