Giáo trình VB6 - Chương 3: Form và các Controls thông thường

Ta hãy bắt đầu thiết kế một chương trình mới (New Project) bằng cách chọn Standard EXE, môi trường triển khai lập trình (IDE) cho bạn sẵn một Form tên là Form1. 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 cở của Control. Một cách khác để đặt một control lên Form là doubleclick cái Control trong Toolbox, một hình control sẽ hiện ra trên Form. Kế đó bạn dời control đi đến chỗ mình muốn và resize nó. Nếu bất cứ lúc nào bạn không thấy Túi đồ nghề (Toolbox) nằm bên trái, bạn có thể dùng mệnh lệnh Menu View|Toolbox để bắt nó hiện ra. Có một cách khác là click lên toolbox icon trên toolbar chính của VB6.

doc12 trang | Chuyên mục: Visual Basic 6.0 | Chia sẻ: dkS00TYs | Lượt xem: 1848 | Lượt tải: 3download
Tóm tắt nội dung Giáo trình VB6 - Chương 3: Form và các Controls thông thường, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ser bấm một mouse button là có một MouseDown Event, khi User buông nó ra thì có một MouseUp Event. Ta thường dùng MouseDown Event để Popup context sensitive menu hay bắt đầu một diễn biến 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
 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 không cho chúng ta thêm chi tiết gì về sự cố, trong khi MouseDown/MouseUp cho ta biết vị trí của cursor, button nào của Mouse được bấm và lúc ấy User có bấm nút Shift, Ctrl hay Alt không. Mỗi Click là đi đôi với một cặp MouseDown/MouseUp. Nếu bạn muốn xử lý vừa Click lẫn MouseDown thì phải cẩn thận. Thí dụ bạn muốn vừa handle Click event vừa handle Mouse Drag thì phải làm sao phân biệt hai trường hợp. Nếu không User chỉ muốn thấy kết quả của Click mà lại thấy control bắt đầu display một Drag icon thì sẽ bực mình. 
KeyPress : xãy ra khi user Press một key. Ta thường dùng nó cho TextBox để loại ra (filter out) các keystrokes ta không chấp nhận. KeyPress cho ta ASCII value, một con số có giá trị từ 1 đến 255, của key.Trong thí dụ dưới đây, một Enter key sẽ được coi như một TAB key: 
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 : mỗi KeyPress event là cho ta một cặp KeyDown/KeyUp event. KeyDown/KeyUp cho ta KeyCode và Shift value. Để detect Function key ta cần dùng KeyDown event.Trong thí dụ dưới đây, ta display Function key User bấm:
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ở nên active khi nó nhận được Focus. Nó sẽ generate một GotFocus Event. Ta có thể dùng nó để đổi màu background của một text box như trong thí dụ dưới đây: 
Private Sub Text2_GotFocus() 
 Text2.BackColor = vbYellow 
End Sub 
LLostFocus : Thường thường hể một Control GotFocus thì trước đó có một Control LostFocus. Ta có thể dùng Event nầy để Validate entry data hay thu xếp công chuyện cho một control vừa mất Focus. Trong thí dụ dưới đây, nếu User không đánh vào một con số ở trong Textbox Text1 thì sẽ được thông báo và Tab Cursor sẽ trở lại Textbox Text1. 
Private Sub Text1_LostFocus() 
 If Not IsNumeric(Text1.Text) Then 
 MsgBox "Please enter a number!" 
 Text1.SetFocus 
 End If 
End Sub 
rDagDrop : xãy ra khi ta drop một cái gì lên control . Parameter Source cho ta biết Control nào đã được Drag và Drop. Nhiều khi một control có thể nhận drop từ nhiều control khác nhau. Trong trường hợp đó ta phải test xem hoặc Control Type, hoặc Name hoặc Tag value của Source control là gì để tùy nghi xử lý.Trong thí dụ dưới đây, khi User drop mouse xuống Textbox Text2, nếu Source là một Listbox, không cần biết Listbox nào, thì ta copy dòng được chọn trong Listbox ấy qua Textbox Text2.
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 đuợc dùng nhiều nhất để display text và nhận keystroke của Userđể sửa đổi text có sẵn hay cho vào text mới. Property chính và default của Textbox là text, tức là thường thường Text2.text có thể được viết tắt là Text2. Ta có thể disable (khiến nó bất lực, không phản ứng gì hết và không cho sửa đổi) một text box bằng cách set Property Enable ra False (chữ sẽ bị mờ đi), hay Lock (không cho sửa đổi) một text box bằng cách set Property Locked ra True (chữ không bị mờ).Text có thể được Align (Alignment Property) để display bên trái, chính giữa hay bên phải của hộp nó. 
Bạn có thể chọn BackColor và ForeColor cho background và text của TextBox. Dùng Tag Palette khi chọn màu để có đúng một màu bạn muốn. 
Dĩ nhiên bạn có thể lựa chọn Font và cở chữ cho Text với Font Property.Bạn giới hạn số characters mà User có thể enter cho TextBox bằng cách set MaxLength Property.Nếu Property Multiline là True thì User có thể enter nhiều hàng. At Design time, nếu bạn muốn enter multiline thì phải nhớ bấm nút Ctrl khi press Enter mỗi khi xuống hàng. Nếu không VB6 IDE tưởng rằng bạn đã kết thúc editing.
Muốn assign cho text box multiline text thì phải nhét vào mỗi cuối hàng 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 
Nếu bạn muốn mách nước cho User về cách dùng một textbox nào đó thì có thể dùng Property ToolTipText để nó display mách nước mỗi khi mouse cursor nằm lên textbox.
Dùng Property TabIndex để ấn định thứ tự cho Tab Cursor dừng mỗi khi User bấm nút TAB để dời TAB Cursor đến Textbox kế tiếp. Nếu bạn không muốn Tab Cursor dừng ở một TextBox nào thì set Property TabStop nó thành False. Tab Cursor không dừng ở Textbox có Property Enabled bằng False, nhưng vẫn dừng ở Textbox có property Locked bằng True.Nếu bạn muốn dùng Textbox làm một Password field thì set Property PasswordChar bằng "*". Làm như thế sẽ ép buộc Textbox display mọi character bằng PasswordChar, tức là "*", để người khác không đọc được trong khi User enter một Paswword. 
Properties SelLength, SelStart và SelTextNếu bạn muốn biết được tình hình hiện thời của Textbox: SelText cho bạn dãy chữ đang được selected. SelStart cho bạn vị trí của insertion point (chỗ cursor flashing). SelLength cho biết con số characters đã được selected.Nếu bạn muốn sửa đổi text trong Textbox: SelText cho bạn nhét vào một dãy chữ. SelStart cho bạn ấn định vị trí bắt đầu của dãy chữ bạn sắp select. SelLength ấn định số characters bạn muốn chọn, bắt đầu từ SelStart.Dưới đây là một thí dụ trong đó ta highlight text tìm đượ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 rất tiện cho ta dùng vào việc xử lý một chuyện gì khi User click lên button. Event ta dùng thường nhất cho CommanButton là Click. Ta dùng Property Caption của CommandButton để enter cái gì ta muốn display trên button. Nếu muốn cho phép User dùng ALT+E (đè nút Atl trong lúc bấm nút E) để generate event click thì nhét dấu "&" trước chữ E trong Caption của button. Caption sẽ display chữ E với một gạch dưới.Ngoài ra ta cũng có thể cho thêm một cái hình vào CommandButton bằng cách chọn một icon cho property Picture và set Property Style ra Graphical, thay vì Standard. 
Lúc Run-time bạn có thể thay đổi hình hay Caption của CommandButton. Trong thí dụ dưới đây, Caption của CommandButton CmdOperation flip-flop giữa 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 
Mục đích chính của Label là để display, không cho User Edit như Textbox. Do đó ta có thể dùng Property Font, ForeColor và Backcolor để làm cho nó đẹp. Ngoài ra Property BorderStyle có thể cho Label lỏm xuống nếu bạn set nó bằng Fixed Single. Nếu set property BackStyle bằng Transparent sẽ tránh trường hợp Backcolor của Label làm cho không đẹp.Label cũng có Property Tabindex. Nếu bạn muốn dùng ALT key để mang Tab Cursor về một Textbox, hãy để một Label với TabIndex bằng TabIndex của TextBox trừ 1. Giả sử Label có Caption là "&Address" thì ALT+A sẽ mang Tab Cursor về TextBox màu vàng như trong thí dụ dưới đây: 
Ngoài ra nhớ rằng bạn có thể thay đổi Caption của Label lúc run-time. 
CheckBox 
CheckBox được dùng để User xác nhận có đặc tính nào một cách nhanh chóng. Property Value của CheckBox có thể là Checked (làm cho hộp vuông có dấu, bằng 1), Unchecked (làm cho hộp vuông trống không, bằng 0) hay Grayed (làm cho hộp vuông có dấu màu nhạt, bằng 2). Một khi biết rằng CheckBox có Value bằng 1, ta có thể đọc Caption của CheckBox để dùng nếu cần. 
Bạn có thể dùng Property Alignment để làm cho Caption đứng bên phải (Left Justify) hay bên trái (Right Justify) của hộp vuông. 
OptionButton 
OptionButton ( còn gọi là RadioButton) có hình tròn với một chấm ở giữa, thay gì hình vuông với một gạch ở giữa như CheckBox. OptionButton luôn luôn được qui tụ thành một nhóm, chứa trong một container. Container là một Control có khả năng chứa các controls khác. Frame, PictureBox, hay chính Form đều là Container. Sau khi đặt một Container lên Form, nếu muốn để một OptionButton lên Container, trước hết ta phải Select container, rồi kế đó chọn OptionButton. Sở dĩ, tất cả OptionButtons phải nằm trong một container là vì bất cứ lúc nào, nhiều nhất là một OptionButton trong container có value True (vòng tròn có chấm ở giữa).Muốn biết một OptionButton có thật sự nằm trong một container, bạn thử kéo cái container đi chỗ khác. Nếu OptionButton bị dời theo container thì nó nằm trong container. Một cách khác là thử kéo OptionButton ra khỏi container. Nếu kéo ra được thì nó không nằm trong container.Muốn di chuyển một OptionButton từ container nầy sang container khác, bạn Cut OptionButton rồi Paste nó vô container kia. 
Đôi khi một container nằm che trên một control khác. Muốn mang một container ra phía sau các controls khác bạn Select container rồi dùng Menu command Format | Order | Send to Back. 

File đính kèm:

  • docGiáo trình VB6 - Chương 3_Form và các Controls thông thường.doc