Ch
ng M i M t - Dùng Dialogs
ươ
ườ
ộ
ể ể ạ ứ ừ ậ ị c dùng đ hi n th tin t c và nh n mouse hay keyboard input t c dùng đ t p trung s chú ý c a users vào công tác đ ượ users tùy ờ ủ ng th i c a ươ ự ủ Dialogs (giao tho i) đ ượ theo tình hu ng. Chúng đ ố program nên r t h u d ng trong các ch ấ ữ ụ ể ậ ươ ng trình c a Windows. ủ
ề ứ ụ ệ ả ỗ ộ ươ ng n y ta s ầ ẽ t. Trong ch Có nhi u d ng Dialogs, m i th áp d ng cho m t hoàn c nh riêng bi bàn qua 4 lo i Dialogs chính và nghiên c u v khi nào và cách nào ta dùng chúng: ứ ề ạ ạ
Message Boxes Input Boxes Common Dialogs Custom Dialogs 1. 2. 3. 4.
Message Boxes
ả ứ ượ ừ ệ ể ắ ở c dùng đ nh c nh user m t chuy n gì, và đòi h i m t ph n ng nào đó t ắ ộ ỏ ử ồ ơ ư ư ẽ ứ i đây: Message Boxes đ ộ user. Thí d nh khi ta ch m d t program MSWord mà ch a l u tr h s thì MSWord s nh c ta ụ ư l u tr nó b ng Dialog d ằ ư ấ ướ ử
ng h p n y user có th click m t trong 3 buttons. N u click ể ế ẽ ầ ộ ợ c khi k t thúc program MSWord. N u click ử ồ ơ ướ ệ ư Yes thì s xúc ti n vi c l u ế ế k t thúc. N u ẽ ế ẽ ặ ế ế Trong tr ườ tr h s tr click Cancel thì có nghĩa user đ i ý vi c ch m d t program và tr l i ti p t c dùng MSWord. No thì MSWord s l ng l ở ạ ế ụ ứ ệ ấ ổ
i đây: Ta dùng routine MsgBox đ hi n th Message Box nh coding trong hình d ị ể ể ư ướ
Close the program down?, parameter ứ ấ ủ ứ ố ợ ủ ằ ậ ộ ứ Parameter (thông s ) th nh t c a MsgBox là text message th nhì là t p h p c a icon (vbQuestion) và s buttons (vbOKCancel) b ng cách c ng hai constants: ố vbQuestion + vbOKCancel (hai buttons OK và Cancel), parameter th ba là title (tiêu đ ) c a ề ủ Dialog.
vbExclamation + vbYesNoCancel ụ ủ Trong thí d MSWord bên trên Constant c a icon và buttons là (ba buttons Yes, No và Cancel).
Ta ch n s và lo i buttons theo b ng d i đây: ọ ố ạ ả ướ
Constant
Các buttons
vbOKOnly
OK
vbOKCancel
OK Cancel
vbYesNo
Yes No
vbRetryCancel
Retry Cancel
vbYesNoCancel
Yes No Cancel
vbAbortRetryIgnore
Abort Retry Ignore
vbCritical, vbQuestion, vbExclamation và ể ủ
i và đ i user ph n ng. Ta nói Message ở ạ ả ể ộ ượ c m ra, c program ng ng l ừ ọ ự ả ứ ư ạ ị ẽ ế ụ ấ ộ i hàng MsgBox. ướ ư ộ ư ể t user v a m i click button nào. Function MsgBox returns m t value (tr v m t giá hàng code ngay d ụ ể ế ớ ộ Constant c a các icons ta có th dùng là vbInformation. Khi m t Message Box đ ượ ợ Modal Mode, nó dành m i s chú ý và t m ng ng các execution khác trong Box đ c hi n th trong cùng program. Sau khi user click m t button, Message Box s bi n m t và program s ti p t c ch y ạ ẽ ế t ừ ư ộ Trong thí d trên ta dùng MsgBox nh m t Sub, nh ng ta cũng có th dùng MsgBox nh m t Function đ bi ả ề ộ tr ) mà ta có th th bi ừ t đ theo đó thi hành. ể ử ế ể Thí d nh : ụ ư ị
Private Sub CmdPrompt_Click() Dim ReturnValue As Integer ReturnValue = MsgBox("Close the program down", vbQuestion + vbOKCancel, "Exit Program") Select Case ReturnValue Case vbOK MsgBox "You clicked OK" Case vbCancel MsgBox "You clicked Cancel" End Select End Sub
Các tr s Visual Basic intrinsic constants mà Function MsgBox returns là: ị ố
Tên
Const
Tr sị ố
1
OK
VbOK
2
Cancel
vbCancel
3
Abort
vbAbort
4
Retry
vbRetry
5
Ignore
vbIgnore
6
Yes
vbYes
7
No
VbNo
ạ ể ể ề ằ ị B n có th hi n th Text message trong Message Box thành nhi u hàng b ng cách dùng Constant vbCrLf (CarriageReturn và LineFeed) đ đánh d u nh ng ch ng t khúc nh sau: ấ ể ữ ư ắ ỗ
MsgBox "This is the first line" & vbCrLf & " followed by the second line"
ng dùng MsgBox v i cùng m t icon và nh ng buttons, nh ng có Text ạ ế ữ ư ớ ộ t m t Global Subroutine trong .BAS module đ dùng l ể ế ể ạ ề i nhi u N u b n th y mình th ườ ấ message khác nhau, b n có th vi ạ l n. Thí d b n có m t Global Sub nh sau: ộ ầ ụ ạ ộ ư
Public Sub DisplayError(ByVal ErrMess As String ) MsgBox ErrMess, vbCritical + vbOKOnly, "Error" End Sub
ố ể ị ộ ỗ ầ ỉ ầ ọ ợ ớ ỉ ầ ở ộ ể ầ ầ ố ổ ị ỗ m t ch . ữ ấ ả ọ ẫ ạ ư ỉ ầ ế ạ t c m i errors x y ra lúc run-time, b n ch c n thêm vài hàng code ẩ t Error message vào m t text file. M i l n mu n hi n th m t Error message b n ch c n g i Sub DisplayError v i Text message mà ạ không s dùng l m l n icon. Sau n y mu n đ i cách hi n th Error message ch c n edit N u user mu n b n l u tr t ố trong Sub DisplayError đ vi ể ế ộ
Input Boxes
ể ộ ố ng h p y ta có th dùng Input Boxes. V i Message Boxes, user ch có th click lên m t button. Đôi khi ta mu n user đánh vào thêm m t ít ộ ớ d ki n, trong tr ữ ệ ỉ ợ ấ ườ ể
user và không hi n th ư ậ ố ừ ể ị Input Boxes gi ng gi ng Message Box, nh ng nó chuyên nh n input data t ố m t icon. Thí d : ụ ộ
Private Sub CmdGreeting_Click() Dim strReply As String strReply = InputBox$("Please enter your name", "What 's your name?", "John", 2000, 1000) MsgBox "Hi " & strReply & ", it 's great to meet you!", vbOKOnly, "Hello" End Sub
ể ứ ấ ứ ượ ủ Function InputBox$. Parameter th nh t là Text message, parameter th ị ẵ c hi n th s n ể ng đánh vào thì user ch c n click nút ỉ ầ ứ ế ườ ệ ấ c, không có cũng không sao). Đ ý các parameters c a hai là Title c a Dialog, parameter th ba là Default Input Value. Đây là value đ ủ trong Input Box khi nó xu t hi n, n u đó là input user th OK là đ . Hai parameters cu i cùng là Optional (nhi m ý, có cũng đ ố ượ ủ ệ
ơ ị twips. H th ng t a đ l y góc trên bên trái làm ọ ộ ấ ệ ố Nó là X,Y coordinates c a Input Box trong đ n v ủ chu n v i X=0, Y=0. ẩ ớ
• •
Input Box có hai d ng Functions: ạ
InputBox$ - returns m t String đàng hoàng ộ InputBox - returns m t String n m trong Variant variable ộ ằ
ể ể ạ ậ N u b n click nút Cancel thì returned Value là empty string, b n có th test empty string đ nh n ạ ế di n tr ườ ệ ng h p n y. ợ ầ
D i đây là m t thí d dùng Function InputBox: ướ ụ ộ
Private Sub CmdFortuneTeller_Click() Dim varValue As Variant Dim intAge As Integer varValue = InputBox("Please enter your age", "How old are you?", "18") If IsNumeric(varValue) Then intAge = Val(varValue) If intAge < 20 Then MsgBox "You are a young and ambitious person", vbOKOnly, "Observation" Else MsgBox "You are a matured and wise person", vbOKOnly, "Observation" End If Else MsgBox "Oh oh! - please type your age!", vbCritical + vbOKOnly, "Input Error" End If End Sub
Khi nào nên dùng Input Boxes
•
M c d u Input Boxes r t d dùng, trên th c t r t ít khi ta dùng nó vì nh ng lý do sau đây: ặ ầ ấ ễ ự ế ấ ữ
•
•
Ta không th làm gì đ ể i n u ta dùng m t Textbox trong m t Form thông th ườ ộ ớ c trong lúc user input data, ph i đ i sau khi user click OK thì m i ả ợ ng, ta KeyPress hay Change đ ki m soát các keystrokes c l ượ ạ ế ủ ộ ể ể ượ b t đ u x lý input textstring. Ng ắ ầ ử có th code trong các Event handlers c a Events ể c a user. ủ ề ấ ố ề ầ ộ Input Boxes ch cho ta đánh vào m t text string duy nh t. Nhi u khi ta mu n user đánh vào ứ Sau cùng, Input Boxes xem không đ p m t. Program dùng Input Boxes có v nh không ộ ỉ nhi u th nên c n ph i có m t form riêng. ả ẹ ẻ ư chuyên nghi p, do đó ta c n ph i dùng ắ Custom Dialogs. ệ ầ ả
Common Dialogs
ầ ấ ạ ể ữ ề ể ữ ể ề ầ ư ọ ư ấ ả ụ ấ ể ọ ủ ộ ề B n có đ ý th y h u nh m i programs trong Windows đ u có cùng nh ng dialogs đ Open và Save files ? Và h u nh t t c programs đ u có cùng dialogs đ ch n màu, font ch hay đ in ? Đó là vì các Dialogs thông d ng y thu c v Common Dialog Library c a MSWindows và cho phép các program g i. ọ
Comdlg32.ocx b ng IDE Menu command ố ấ ằ Mu n dùng các Dialogs y trong VB6 ta ph i reference ả Microsoft Common Dialog Control 6.0. Project | Components... r i ch n và Apply ọ ồ
Microsoft Common Dialog Control 6.0 cho ta sáu d ng Dialogs tùy theo g i Method nào: ạ ọ
Tên
Method
Open File
ShowOpen
Save File
ShowSave
Color
ShowColor
Font
ShowFont
ShowPrinter
Help
ShowHelp
Open và Save File Dialogs
ạ ớ ớ ộ B n hãy m m t Project m i v i m t button tên CmdOpen trong Form1 và đánh vào code sau đây ở ộ cho Sub CmdOpen_Click:
Private Sub CmdOpen_Click()
On Error GoTo DialogError With CommonDialog1 .CancelError = True ' Generate Error number cdlCancel if user click Cancel .InitDir = "E:\VB6" ' Initial (i.e. default ) Folder .Filter = "Executables (*.exe) | *.exe| Batch Files (*.bat)| *.bat" .FilterIndex = 1 ' Select ""Executables (*.exe) | *.exe" as default .DialogTitle = "Select a program to run" .ShowOpen ' Lauch the Open Dialog MsgBox "You selected " & .FileName, vbOKOnly + vbInformation, "Open Dialog" End With Exit Sub DialogError: If Err.Number = cdlCancel Then MsgBox "You clicked Cancel!", vbOKOnly + vbInformation, "Open Dialog" Exit Sub Else MsgBox "Error in Dialog's use: " & Err.Description, vbOKOnly + vbCritical, "Error" Exit Sub End If End Sub
Open, program s hi n th error message d i đây: Hãy ch y program y và click button ấ ạ ẽ ể ị ướ
ỏ ộ ậ i và click button Open đ hi n th hãy ch y program l ạ ể ể ị Open ạ ạ ờ Đó là vì ta quên b m t Microsoft Common Dialog Control 6.0 vào Form1. V y b n hãy doubleclick icon c a nó trong ToolBox. Bây gi ủ Dialog.
ạ ằ ể ừ ầ ả ủ ạ folder n y qua folder khác hay thay đ i ổ ấ File of type, nó s dropdown đ cho th y ẽ ể t kê trong statement: B n có th ch n folder nào tùy ý b ng cách di chuy n t disk drive. N u b n click vào bên ph i c a combobox b n có th ch n m t trong hai lo i Files nh li ạ ể ọ ế ể ọ ư ệ ạ ộ
.Filter = "Executables (*.exe) | *.exe| Batch Files (*.bat)| *.bat"
Open. Sau ạ ọ ộ ộ File name textbox, b n click Sau khi ch n m t Filename có s n hay đánh m t tên vào đó, CommonDialog1.Filename s ch a tên file b n đã ch n hay đánh vào. ọ ẵ ẽ ứ ạ
ẽ ộ ố 32755 ế ằ Ở ắ Vì ta cho .CancelError = True nên n u user click Cancel program s generate m t Error s (cdlCancel). đây ta b t Error y b ng cách dùng ấ Err.Number= cdlCancel đ hi n th Error message d i đây: On Error GoTo DialogError và thử ướ ể ể ị
Save Dialog cũng t ng t nh Open Dialog, ta dùng method ShowSave đ hi n th nó. ươ ự ư ể ể ị
ụ ạ ằ ị ể Trong thí d trên ta đ nh nghĩa các properties c a CommonDialog1 b ng code. B n cũng có th ủ dùng Properties Windows đ đ nh nghĩa chúng nh d i đây: ư ướ ể ị
ể ị ủ ể Ngoài ra, b n cũng có th dùng các trang Properties c a CommonDialog1 đ đ nh nghĩa Properties lúc thi t k b ng cách right click Commondialog1 trên Form1 r i ch n ạ ế ế ằ ọ Properties: ồ
ẽ ể ị ớ Open/Save As có s n lúc đ u, b n có th đánh các tin ầ ể ẵ ạ Properties Pages Dialog s hi n th v i Tab t c nh sau: ư ứ
Color Dialog
ẵ ọ t o ể ự ạ ữ ọ Windows Palette b ng cách ằ c cung c p, g i là ấ ượ ả ộ ồ Color Dialog cho user m t cách ch n màu r t d dùng. Ngoài nh ng màu có s n, user có th t ấ ễ ộ ra m t màu r i cho nó thêm vào trong b ng màu đ click button Add to Custom Colors.
ộ ằ ạ ạ ả ỗ ớ ổ ộ ậ ư ể ể ả ố ị ể ừ Custom Colors n m phía d c cho thêm vào nhóm i, bên trái. B n t o ra m t màu b ng cách click ch có màu theo ý trong b ng màu l n hình vuông r i n m ồ ắ hình tam giác bên ph i kéo lên, kéo xu ng đ thay đ i đ đ m c a màu nh hi n th trong h p ộ ủ Add to Custom Colors, màu y sấ ẽ vuông Color|Solid. Khi v a ý v i màu hi n th , b n click button ị ạ ớ đ ượ ướ ằ
ể ể ộ ọ ị ể ồ ụ ướ ự ế ộ Ta dùng method ShowColor đ hi n th Color Dialog. Sau khi user đã ch n m t màu r i, ta có th i đây tr c ti p assign nó cho property ForeColor hay BackColor c a m t control. Trong thí d d cái màu mà user v a ch n đ c assigned cho background c a picturebox Picture1: ọ ượ ủ ủ ừ
Private Sub CmdSelectColor_Click() On Error GoTo NoColorChosen With CommonDialog1 .CancelError = True ' Entire dialog box is displayed, including the Define Custom Colors section .Flags = cdlCCFullOpen .ShowColor ' Launch the Color Dialog Picture1.BackColor = .Color ' Assign selected color to background of Picture1
Exit Sub End With NoColorChosen: ' Get here if user clicks the Cancel button MsgBox "You did not select a color!", vbInformation, "Cancelled" Exit Sub End Sub
Font Dialog
ữ ủ ể ả ọ ế ị Font Dialog cho ta ch n Font cho màn nh hay printer và ch n màu đ dùng cho ch c a Font. Ta ọ dùng method ShowFont đ hi n th FontDialog. Các chi ti ộ t trình bày trong Font Dialog tùy thu c ể ể vào tr s c a Flags nh sau: ị ố ủ ư
Constant
Tr sị ố
Hi u qu ệ
ả
cdlCFScreenFonts
Ch hi n th các Fonts printer h tr
1
ỉ ể
ổ ợ
ị
ủ
cdlCFPrinterFonts
2
Ch hi n th các Fonts c a màn nh, ch a ư ch c t t c đ u đ
c printer h tr
ỉ ể ị ắ ấ ả ề ượ
ả ổ ợ
cdlCFBoth
Hii n th các Fonts màn nh và printer
3
ể
ả
ị
ỉ ể
ư
ị
cdlCFScalableOnly
&H20000
Ch hi n th các scalable Fonts nh TrueType fonts mà b n đã cài vào máy
ạ
N u b n mu n cho user nhi m ý đ ch n màu thì thêm 256 vào tr s c a Flags. ị ố ủ ể ọ ệ ế ạ ố
D i đây là code đ cho user ch n Font và màu c a Label1. ướ ủ ể ọ
Private Sub CmdSelectFont_Click() On Error GoTo NoFontChosen CommonDialog1.CancelError = True ' Causes the dialog box to list only the screen fonts supported by the system. CommonDialog1.Flags = cdlCFScreenFonts + 256 ' Add 256 to include Color option CommonDialog1.ShowFont ' Launch the Font Dialog With Label1.Font .Bold = CommonDialog1.FontBold .Italic = CommonDialog1.FontItalic .Name = CommonDialog1.FontName .Size = CommonDialog1.FontSize .Strikethrough = CommonDialog1.FontStrikethru .Underline = CommonDialog1.FontUnderline End With Label1.ForeColor = CommonDialog1.Color Label1.Caption = "Hello world!!!, this is a Font Dialog Demo" Exit Sub NoFontChosen: MsgBox "No font was chosen!", vbInformation, "Cancelled" Exit Sub End Sub
ẽ ạ ằ ộ ố ộ Chú ý: N u b n quên cho Flags m t trong nh ng h ng s nói trên program s cho m t Error ữ ế message nh sau: ư
Print Dialog
ố ộ ệ ữ ệ ớ ệ ể ọ ể ọ ằ ớ ủ trang nào đ n trang nào c a ữ ế ị ừ ế ế ỉ
PrinterDefault = True thì Printer y s tr ễ ề ọ ệ ự ẽ ế ả i. Print Font cho ta m t giao di n cũng gi ng nh trong Microsoft Office đ ch n nh ng nhi m ý v ề ư vi c in. V i Print Dialog ta có th ch n printer nào v i nh ng đ c tính nào b ng cách click button ặ Properties hay button Preferences. Ta cũng có th quy t đ nh in t ể document và in bao nhiêu copies. Ch có đi u ph i l u ý là n u user dùng Print Dialog đ ch n m t ộ ể ọ ả ư ấ ẽ ở Printer khác mà trong Print Dialog ta đã ch n Property thành Default Printer và nó cũng s có hi u l c vĩnh vi n trong c Windows cho đ n khi user thay đ i l ổ ạ
ớ ả ộ ị ố ủ ỏ ShowPrinter đ hi n th Print Dialog. Ba properties th ng đ ỉ ầ ượ c ể ể ườ ị Copies, FromPage và ToPage. Đ choể ủ ệ ấ ọ c khi hi n th ị ố ướ ể ể ẵ ủ ể ầ ạ ị Khác v i Color và Font Dialogs, Print Dialog không đòi h i ta ph i cho m t tr s c a Property Flags. Ta ch c n dùng Method dùng nh t sau khi user ch n các nhi m ý c a Print Dialog là user các default values c a nh ng properties n y, b n có th đ s n các tr s tr ữ Print Dialog.
D i đây là code m u dùng print Dialog: ẫ ướ
Private Sub CmdSelectPrinter_Click() With CommonDialog1 .FromPage = 1 .ToPage = 1 .Copies = 1 .ShowPrinter End With End Sub
Help Dialog
ư ả ỡ ớ ị Ta dùng method ShowHelp đ hi n th các thông tin giúp đ , nh ng nh ph i cho CommonDialog ít nh t tr s c a các properties ể ể HelpFile và HelpCommand. ấ ị ố ủ
Private Sub CmdHelp_Click() CommonDialog1.HelpFile = "YourProgram.hlp" CommonDialog1.HelpCommand = cdlHelpContents CommonDialog1.ShowHelp End Sub
t thêm chi ti t v cách dùng ShowHelp, highlight ch ế ề ữ HelpContext trong source code VB6 Đ bi ể ế r i n phím ồ ấ F1 và ch n ọ MsComDlg.
Custom Dialogs
ề ạ ẫ Nhi u khi Message Box, Input Box hay các d ng Common Dialogs v n không thích h p cho hoàn ợ ộ ng đ làm thành m t ng h p y b n có th dùng m t Form bình th c nh l p trình. Trong tr ể ả ợ ấ ườ ườ ể ạ ậ ộ
ườ ơ ứ ấ ư ơ ộ i là n. Nó h i m t công h n m t chút, nh ng th nh t nó có nh ng màu s c ắ ng trình, và th hai ta mu n làm gì tùy ý. Ch có cái b t l ấ ợ ữ ỉ ứ ố ng trình s dùng nhi u tài nguyên h n, nói th ng ra là c n thêm m t ít memory. Dialog cây nhà, lá v ấ gi ng nh các Forms khác trong ch ố ươ ư ch ươ ề ẽ ẳ ầ ộ ơ
ộ ử ể ể ề ợ ổ ị ộ ầ thì cái Form chính c a program m i hi n ra. Cách ta th c hi n là cho ớ ườ ậ ự ẩ ệ ủ ệ ậ ộ Sub Main trong .BAS Module. Sub Main s g i ẽ ọ Sub GetUserInfo ể ể ể ệ ằ ị ở Sau đây ta th tri n khai m t Login Form t ng quát, có th dùng trong nhi u tr ng h p. Khi kh i đ ng, program n y s hi n th m t Login form yêu c u user đánh vào tên và m t kh u. Sau đó, n u ế ầ ẽ ể ộ tên và m t kh u h p l ợ ệ ẩ program kh i đ ng v i m t ớ ở ộ (cũng n m trong cùng Module) đ hi n th form frmLogin trong Modal mode đ nó làm vi c cùng m t cách nh Message Box, Input Box hay Common Dialogs. ư ộ
c d u kín b ng statement ằ t đi n vào các textboxes txtUserName và txtPassword đ ượ ấ ề ế ụ ể ế i đây: t ra d Me.Hide thì execution trong Sub GetUserInfo sẽ Khi form frmLogin đ c tr v local variables ti p t c đ chi ti ượ strUserName và strPassword. Mã ngu n c a Sub Main và Sub GetUserInfo đ ượ ả ề c li ệ ồ ủ ướ
Sub Main() Dim strUserName As String Dim strPassword As String ' Call local Sub getUserInfo to obtain UserName and Password GetUserInfo strUserName, strPassword If strUserName = "" Then MsgBox "Login failed or aborted", vbInformation, "login Aborted" Else MsgBox "User " & strUserName & " logged in with password " & strPassword, vbInformation, "Login accepted" ' Check UserName and Password here ' If valid password then show the Main form of the program which is implemented separately... ' frmMain.Show End If End Sub Private Sub GetUserInfo(ByRef sUserName As String, ByRef sPassword As String) ' Invoke frmLogin form in Modal mode frmLogin.Show vbModal ' As soon as frmLogin is hidden, the execution gets here sUserName = frmLogin.txtUserName ' assign the form's txtUserName to sUserName sPassword = frmLogin.txtPassword ' assign the form's txtPassword to sPassword Unload frmLogin ' Unload form frmLogin End Sub
Login form đ c hi n th nh d i đây: ượ ị ư ướ ể
t và click OK, t m th i ta ch hi n th m t thông đi p đ xác nh n các chi ề ế ị ộ ỉ ể ể ệ ậ ạ ờ Sau khi user đi n chi ti ti t y. ế ấ
ng lai, b n có th vi ươ ệ ự ể ế ậ ẩ t v form frmLogin đ nó làm vi c gi ng gi ng m t Common Dialog: Trong t m t vài chi ti ộ ạ ế ề t thêm code đ ki m tra xem tên và m t kh u có hi u l c không. Có ộ ể ể ệ ể ố ố
• •
• •
•
ủ Ta cho property BorderStyle c a frmLogin là ậ Ta cho Property PasswordChar c a textbox txtPassword b ng "*" đ khi user đi n m t Fixed Dialog. ằ ủ ề ể ẩ ỉ ấ kh u, ta ch th y m t hàng d u hoa th . ị ộ ủ Enter trong form là coi ủ CenterScreen. cmdOK là True đ khi user n phím ể ấ nh t ớ ươ ng t cmdCancel là True đ khi user n phím Esc ng v i click button cmdOK. ợ ư ế Property Cancel c a button ủ ể ấ ấ Ta cho Property StartupPosition c a form là Property Default c a button ng đ ư ươ T ươ trong form là coi nh t ng đ ng v i click button cmdCancel. nh th , ư ươ ươ ớ
T m th i coding c a event click c a cmdOK và cmdCancel ch đ n gi n nh li t kê d i đây: ỉ ơ ư ệ ủ ủ ả ạ ờ ướ
Private Sub CmdCancel_Click() ' Clear txtUserName and txtPassword txtUserName = "" txtPassword = "" ' Hide the Form to get out of Modal mode Me.Hide End Sub
Private Sub CmdOK_Click() ' Hide the Form to get out of Modal mode Me.Hide End Sub