Label Frame CheckBox ComboBox HScrollBar Timer DirListBox Shape Image.[r]
Trang 1CHƯƠNG V: CÁC ĐIỀU KHIỂN CƠ BẢN
Hình 26: Các điều khiển cơ bản trong Visual Basic trên thanh công cụ
I FORM (BIỂU MẪU)
Form là nơi dùng để dùng để đặt các đối tượng trên nó Khi chạy chương trình Form xuất hiện dưới dạng một cửa sổ Một chương trình Visual Basic có thể có nhiều Form, để
chèn thêm một Form ta vào Project – AddForrm, trong số đó có một Form xuất hiện đầu
tiên khi chạy chương trình gọi là Form chính:
Hình 27: Một Form trong Visual Basic
I.1 Một số thuộc tính của Form
- Top, Left: Xác định vị trí của Form trên màn hình (khoảng cách phía trên và bên trái)
- Height, Width: Kích thước của Form (chiều cao và chiều rộng)
PictureBox TextBox Command Button Option Button ListBox
VScrollBar DriveListBox FileListBox Line
Data
Pointer Label Frame CheckBox ComboBox HScrollBar Timer DirListBox Shape Image
Trang 2- Border Style: Quy định các kiểu đường biên của Form (0: None, 1: Fixed Single, 2: Sizeable, 3: Fixed Dialog, 4: Fixed ToolWindow, )
- Icon: Chọn biểu tượng hình ảnh xuất hiện bên trái thanh tiêu đề của Form
- BackColor: Màu nền của Form
- WindowState: Kích thước của Form khi chạy chương trình (0: Normal, 1: Minimized, 2: Maxminzed)
Ví dụ: Thay đổi màu cửa sổ và di chuyển nó đến giữa màn hình:
Private Sub_FormLoad() Form1.WindowState = 2 ‘ Cửa sổ phóng lớn cả màn hình Form1.BackColor = QBColor(4) ‘ Đặt màu nền là màu đỏ (4) Form1.Left = (Screen.Width – Form.Width)/2 ‘ Screen.Width: chiều rộng mh Form1.Right = (Screen.Height – Form.Height)/2 ‘ Screen.Height: chiều cao mh End Sub
I.2 Một số phương thức của Form
- Show: Hiển thị Form, cú pháp: <Tên Form>.Show [Style], Style có thể là 0:
Modeless và 1: Modal
- Hide: Không cho Form hiển thị, cú pháp: <Tên Form>.Hide
- Move: Thực hiện di chuyển Form đến vị trí khác trên màn hình, cú pháp:
Sub Move(Left As Single, [Top], [Width], [Height])
Các tham số trong cặp [] là phần tùy chọn Phương thức di chuyển Form đến vị trí cách bên trái Left, cách trên Top và kích thước thay đổi thành Width và Heigth
Ví dụ: Form1.Move 200, 300, 500, 800
- Line: Là phương thức dùng để vẽ đoạn thẳng Cú pháp:
Sub Line(X1 As Single, Y1 As Single) - ( X2 As Single, Y2 As Single), Color As Long
Ä (x1, y1): điểm đầu, (x2, y2): điểm cuối, Color: màu của nét vẽ
Ví dụ: Form1.Line (100, 200)-(300, 400), QBColor(4)
- Circle: Là phương thức dùng để vẽ đường tròn, Elíp hoặc cung tròn Cú pháp:
Sub Circle(X As Single, Y As Single), Radius As Single, Color As Long, Start As Single, End As Single, Aspect As Single
Ä (x , y): là tâm của đường tròn, Radius: bán kính, Color: màu vẽ, Start, End: góc đầu và góc cuối để vẽ cung tròn, Aspect: sử dụng để vẽ Elíp
Ví dụ: Form1.Circle(500, 500), RGB(200, 190, 45)
- Các phương thức khác: SetFocus (nhận Focus), Refresh (cập nhật lại nội dung trên Form),
I.3 Một số sự kiện của Form
- Click, DblClick: Xảy ra khi người dùng nhắp hoặc nhắp đúp chuột vào Form
- KeyDown, KeyPress, KeyUp: xảy ra khi người dùng nhấn xuống một phím (KeyDown), nhấn phím ASCII (KeyPress), nhả một phím đã nhấn (KeyUp) Cú pháp:
Private Sub Command1_KeyDown(KeyCode As Integer, Shift As Integer)
Ä KeyCode: mã của phím vừa nhấn, Shift: các phím kết hợp Shift, Ctrl, Alt cùng nhấn, giá trị của Shift cho trong bảng sau:
Giá trị Shift Tổ hợp phím
Trang 32 Ctrl
Hình 28: Mã kết hợp của các phím
Private Sub Command1_KeyPress(KeyAscii As Integer)
Ä KeyAscii: chứa mã của phím ASCII vừa được nhấn
Private Sub Command1_KeyUp(KeyCode As Integer, Shift As Integer)
Ä Các tham số KeyCode và Shift tương tự như sự kiện KeyDown
- MouseDown, MouseMove, MouseUp: Xảy ra khi nhấn chuột (MouseDown), di chuyển chuột (MouseMove) và nhả chuột (MouseUp) trên Form Cú pháp:
Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Ä Button: xác định phím chuột được nhấn (1: phím trái, 2 phím phải, 4: phím giữa); (x,y) là tọa độ nơi xảy ra sự kiện nhấn chuột Shift: cho biết các phím kết hợp (Shift, Ctrl, Alt) được nhấn đồng thời với chuột
- Load, Unload: xảy ra khi nạp Form vào bộ nhớ (Load) và hủy bỏ Form khỏi bộ nhớ (UnLoad)
Ví dụ: Khi nhắp chuột vào Form1 sẽ xuấn hiện câu thông báo:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) MsgBox "Chào bạn! Bây giờ là :" & Time()
End Sub
II LABEL (NHÃN)
Dùng để hiển thị các dòng văn bản trên biểu mẫu, thường được sử dụng để chú thích cho các điều khiển khác:
Hình 29: Điều khiển Label được dùng kết hợp với các điều khiển khác
II.1 Một số thuộc tính của Label
- Caption: Nội dung của dòng văn bản trong Label
- AutoSize: Cho phép kích thước của Label tự động thay đổi cho phù hợp với Caption
- Alignment: Căn chỉnh nội dung Caption (0: Left, 1: Right, 2: Center)
- Font, FontBold, FontItalic: xác định Font để hiển thị nội dung Caption
Trang 4- ForeColor, BackColor: xác định màu chữ và màu nền của Label, màu có thể được xác định bằng các hàm: QBColor(n) và RGB(r, g, b)
II.3 Một số sự kiện của Label
- Label có một số sự kiện Click, DblClick, MouseMove, MouseDown, MouseUp giống như Form
III TEXTBOX (HỘP VĂN BẢN)
TextBox (thường gọi là hộp văn bản) là nơi chứa các thông tin do người sử dụng nhập vào từ bàn phím, ngoài ra nó cũng có thể được sử dụng để hiển thị dữ liệu
Hình 30: Điều khiển TextBox được dùng để nhập số liệu
III.1 Một số thuộc tính của TextBox
- Text: Nội dung của văn bản xuất hiện trong TextBox
- Multiline: Cho phép hiển thị nhiều dòng trong hộp văn bản (True, False)
- ScrollBar: Sử dụng các thanh cuộn để xem nội dung TextBox (0: None, 1: Thanh cuộn ngang, 2: Thanh cuộn dọc, 3: Cả hai thanh cuộn)
- Password Char: Sử dụng ký tự xuất hiện thay cho các ký tự trong TextBox, thường được sử dụng khi dùng TextBox để nhập mật khẩu
- Các thuộc tính khác: Font, ForeColor, BackColor,
- Các thuộc tính dùng trong CSDL: DataChanged, DataField, DataSource,
III.2 Một số phương thức của TextBox
- Move: di chuyển đối tượng TextBox tương tự như đối với Form, cú pháp:
Sub Move(Left As Single, [Top], [Width], [Height])
- Refresh: Cập nhật lại nội dung của TextBox
- SetFocus: Cho đối tượng nhận Focus (sự quan tâm đến đối tượng)
Ví dụ: Sử dụng phương thức SetFocus trong sự kiện LostFocus để yêu cầu người sử
dụng phải nhập vào TextBox một giá trị ngày tháng:
Private Sub Text1_LostFocus()
If Not IsDate(Text1.Text) Then ‘ Nếu nội dung nhập vào không phải là ngày MsgBox(“Bạn hãy nhập lại !”) ‘ Thông báo
Text1.SetFocus ‘ Cho Text1 nhận Focus Exit Sub ‘ Thoát khỏi sự kiện End If
End Sub
III.3 Một số sự kiện của TextBox
- KeyDown, KeyUp, KeyPress, Click, DblClick: giống với Form, ví dụ sau
Ví dụ 1: Sử dụng sự kiện KeyPress để chỉ cho phép nhập vào TextBox các chữ cái
Trang 5Private Sub Text1_KeyPress(KeyAscii As Integer)
If Not (KeyAscii >= 97 And KeyAscii <= 122) Then KeyAscii = 0
End If End Sub
Ví dụ 2: Chỉ cho phép nhập vào chữ in hoa và xóa bỏ khoảng trống, hàm Asc(ch) trả về
mã của ký tự ch và hàm Chr(x) trả về ký tự có mã là x
Private Sub Text1_KeyPress(KeyAscii As Integer) KeyAscii = Asc(Ucase$(Chr$(KeyAscii)
If KeyAscii = Asc(" ") Then KeyAscii = 0 End Sub
Ví dụ 3: Kiểm tra nếu người dùng nhấn Ctrl+F2 thì hiển thị ngày vào Text1, hằng
vbKeyF2 chứa mã của phím F2, hằng vbCtrlMask: giá trị của Shift khi chỉ nhấn Ctrl
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF2 And Shift = vbCtrlMask Then Text1.Text = Date$ ‘ hiển thị ngày
End If End Sub
- Change: sự kiện này xảy ra khi người sử dụng thay đổi nội dung của TextBox
Ví dụ: Khi nhập dữ liệu vào TextBox, nếu độ dài nội dung > độ dài tối đa thì thực hiện
nhấn phím Tab bằng cách thực hiện hàm SendKeys “{Tab}”
Private Sub Text1_Change()
If Len(Text1.Text) = Text1.MaxLength Then SendKeys "{Tab}"
End Sub
- LostFocus: xảy ra khi TextBox mất Focus
Ví dụ: Thay đổi định dạng số bằng hàm Format( ) trong sự kiện LostFocus
Private Sub txtNumber_LostFocus()
On Error Resume Next txtNumber.Text = Format(CDbl(txtNumber.Text), "#,###,###,##0.######")
End Sub
IV COMMAND BUTTON (NÚT LỆNH)
Command Button là điều khiển nút lệnh cho phép người sử dụng nhắp vào để thực hiện các công việc Do khi bị nhắp các nút lệnh thường lún xuống nên có thể gọi là Push Button:
Hình 31: Điều khiển Command Button được dùng làm nút nhấn
Trang 6IV.1 Một số thuộc tính
- Caption: Nội dung của nút bấm, để sử dụng phím nóng kết hợp với phím Alt như:
OK thì ta thêm dấu & vào trước chữ cái làm phím nóng: &OK (được OK), Re&Set (được ReSet)
- Default: = True là nút mặc định, nút này sẽ được thực hiện khi nhấn Enter
- Cancel: =True, nút này sẽ được thực hiện khi nhấn phím ESC
- Style: kiểu của nút (0: Standard - kiểu bình thường, 1: Graphical - kiểu đồ họa, có thể đưa hình ảnh vào nút)
- Pictute: Chọn hình ảnh để đưa vào nút, thuộc tính này chỉ có tác dụng khi thuộc tính Style=1 Ngoài ra ta còn có thể dùng các thuộc tính DownPicture và DisablePicture
để chọn các hình ảnh khi nút bị nhấn xuống hoặc khi nút bị Disable
Hình 32: Minh họa nút nhấn đồ họa trong Visual Basic
IV.2 Một số phương thức
- Move, SetFocus, Refresh
IV.3 Một số sự kiện
- Click, GotFocus, KeyDown, KeyUp, KeyPress
Ví dụ: Thông báo giờ khi nhắp vào nút Command1
Private Sub Command1_Click() MsgBox "Bây giờ là :" & Time() End Sub
V OPTION BUTTON (NÚT CHỌN)
Thuộc tính là điều khiển có dạng một nút chọn hình tròn, thường được sử dụng để biểu diễn các đối tượng dữ liệu chỉ nhận một trong hai giá trị True và False:
Trang 7Hình 33: Minh họa điều khiển Option Button
V.1 Một số thuộc tính
- Caption: Nội dung nút chọn, trên Hình 33: đó là: “Âm nhạc”, “Thể thao”,
- Value: Chỉ nhận một trong 2 giá trị True (khi hộp được chọn, ví dụ: mục Thể thao) hoặc False (khi hộp không được chọn, ví dụ: mục Âm nhạc)
- Style: kiểu của nút chọn (0: Standard, 1: Graphics), với kiểu Graphics người sử dụng
có thể đưa các hình ảnh (trong thuộc tính Picture) vào nút chọn
V.2 Một số phương thức
- Refresh, Move, SetFocus, Drag: ý nghĩa giống các điều khiển trên
V.3 Một số sự kiện
- Click (nhắp chuột), KeyUp (nhả phím bấm), KeyDown (nhấn phím bấm), KeyPress (gõ một phím ASCII), GotFocus (Nhận Focus), LostFocus (mất Focus)
Chú ý: Đối với điều khiển Option Button, tại mỗi thời điểm chỉ có một đối tượng được
chọn do vậy nó thường được sử dụng để biểu diễn các mục chọn chỉ cho phép chọn một giá trị Ví dụ trên Hình 33 chỉ cho phép chọn một sở thích
VI CHECKBOX (HỘP KIỂM TRA)
Là điều khiển dùng để hiển thị các hộp kiểm tra (CheckBox), thường được sử dụng để biểu diễn các mục kiểm tra từ phía người sử dụng:
Hình 34: Minh họa điều khiển CheckBox
VI.1 Một số thuộc tính
- Caption: Nội dung xuất hiện trên nút kiểm tra, ví dụ: Âm nhạc, Thể thao,
- Value: giá trị được biểu diễn bởi hộp kiểm tra (0: Unchecked – không được chọn, 1: Checked - được chọn, 2: Grayed – giá trị không xác định)
If Check1.Value=1 Then Gioi_tinh = “Nam”
ElseIf Check1.Value = 0 Goi_tinh = “Nu”
Else MsgBox “Không xác định giới tính !”
End If
- Style: kiểu nút kiểm tra (0: Standard, 1: Graphics), với kiểu Graphics người sử dụng
có thể đưa các hình ảnh (xác định trong thuộc tính Picture) vào nút kiểm tra
VI.2 Một số phương thức
- Move, Refresh, SetFocus
Trang 8VI.3 Một số sự kiện
- Click, KeyDown, KeyPress, KeyUp, MouseDown, MouseMove, MouseUp,
Chú ý: Đối với nút kiểm tra, tại một thời điểm có thể có nhiều đối tượng được chọn do
vậy nó thường được sử dụng để biểu diễn các mục chọn cho phép chọn nhiều giá trị cùng lúc Ví dụ trên Hình 34 cho phép cùng lúc chọn nhiều sở thích
VII LISTBOX & COMBOBOX (HỘP DANH SÁCH)
Điều khiển ListBox và ComboBox thường được sử dụng để biểu diễn các mục dưới dạng một danh sách cho phép người sử dụng chọn lựa một hay nhiều mục bằng cách nhắp chuột vào các mục tương ứng Các thuộc tính, phương thức và sự kiện của ListBox và ComboBox gần giống nhau chúng chỉ khác nhau ở hình thức thể hiện:
Hình 35: Minh họa điều khiển ListBox
Hình 36: Minh họa điều khiển ComboBox
VII.1 Một số thuộc tính
- ListCount: Cho biết số các mục chọn trong danh sách
- ListIndex: Chỉ số (Số thứ tự) của mục trong danh sách hiện đang được chọn, mục đang được chọn sẽ có dải màu xanh vắt ngang, chỉ số được tính từ 0
- Sorted (True, False): Các mục trong danh sách có được sắp xếp hay không
- Text: Cho biết nội dung của mục đang được chọn Khi đó Text1.Text là tương đương với List1.List(List1.ListIndex)
- List(i): Trả về nội dung của mục có chỉ số là i trong danh sách
Ví dụ:
² List1.List(6): Nội dung phần tử thứ 7 của List1
² Combo1.List(Combo1.ListIndex): Cho biết nội dung của mục đang được chọn trong đối tượng Combo1
Trang 9² List1.List(2) = “Phạm Anh Tuấn”, gán giá trị “Phạm Anh Tuấn” cho mục thứ 3
a) Một số thuộc tính riêng của ListBox
- MultiSelect: Cho biết tại mỗi thời điểm có thể chọn được nhiều mục hay không, có 3 giá trị (0-None: Chỉ cho phép chọn một mục, 1-Simple: Chọn nhiều mục và các mục này có thể cách nhau, 2-Extended: Chọn nhiều mục các mục này có thể cách nhau và nhấn Ctrl trong lúc chọn)
- Columns: Cho danh sách thể hiện thành nhiều cột
- Selected(i): Cho biết mục có chỉ số là i của danh sách có được chọn hay không
Ví dụ:
For i = 0 To List1.ListCount-1
If List1.Select(i) = True Then MsgBox “Mục thứ: ” & i+1 & “ được chọn !”
End If Next i
b) Một số thuộc tính riêng của ComboBox
- Style: Quy định các hình dạng thể hiện của ComboBox (0-Dropdown Combo; 1-Simple Combo; 2-Dropdown List)
VII.2 Một số phương thức
- AddItem(s): Thêm một mục có nội dung là s vào danh sách
Ví dụ: List1.AddItem(“Hà Nội”); Combo1.AddItem(“Sài Gòn”)
- RemoveItem(i):Xóa một mục có chỉ số là i trong danh sách
Ví dụ:
² Combo1.RemoveItem(1) ‘ xóa mục có chỉ số là 1 tức mục thứ 2 trong danh sách
² Combo1.RemoveItem(Combo1.ListIndex) ‘ xóa mục đang chọn trong Combo1
- Clear: Xóa tất cả các mục của danh sách
Ví dụ: Chuyển qua lại các mục giữa hai danh sách List1 và List2, trên Form sử dụng các
nút: > (Command1), >> (Command2), < (Command3), << (Command4) Nút > và < chỉ chuyển một mục hiện tại còn >> và << chuyển tất cả các mục từ danh sách hiện tại sang danh sách còn lại:
Hình 37: Ví dụ minh họa điều khiển ListBox
Private Sub Command2_Click() ‘ Đưa tất cả các mục từ List1 sang List2 For i = 0 To List1.ListCount – 1 ‘ Đưa từng phần tử từ List1 sang List2 List2.AddItem (List1.List(i)) ‘ Thêm vào List2
Trang 10End Sub Private Sub Command1_Click() ‘ Đưa mục hiện tại từ List1 sang List2 List2.AddItem List1.List(List1.ListIndex) ‘ Thêm vào List2 mục đang chọn ở List1 List1.RemoveItem (List1.ListIndex) ‘ Xóa mục đang chọn ở List1
End Sub Private Sub Command3_Click() ‘ Đưa mục hiện tại từ List2 sang List1 List1.AddItem List2.List(List2.ListIndex) ‘ Thêm vào List1 mục đang chọn ở List2 List2.RemoveItem (List2.ListIndex) ‘ Xóa mục đang chọn ở List2
End Sub Private Sub Command4_Click() ‘ Đưa tất cả các mục từ List2 sang List1 For i = 0 To List2.ListCount – 1 ‘ Đưa từng phần tử từ List2 sang List1 List1.AddItem (List2.List(i)) ‘ Thêm vào List1
Next i List2.Clear ‘ Xóa danh sách List2 sau khi đã thêm vào List1 End Sub
Private Sub Form_Load() ‘ Sự kiện khi khởi tạo Form List1.AddItem "Phạm Tuân" ‘ Thêm một phần tử vào List1 List1.AddItem "Yến Lê"
List1.AddItem "Thanh Hiền"
List1.AddItem "Văn Quyến"
List1.AddItem "Phạm Thọ"
List1.AddItem "Viết Hường"
End Sub
VII.3 Một số sự kiện
- Click, DblClick, KeyDown, KeyPress, KeyUp, MouseUp, MouseDown, MouseMove, GotFocus, LostFocus
VIII PICTUREBOX (HỘP HÌNH ẢNH)
PictureBox cho phép hiển thị nội dung một bức ảnh trong chương trình Visual Basic, ngoài ra còn có thể sử dụng nó để vẽ một số hình ảnh đồ họa:
Hình 38: Minh họa điều khiển PictureBox
VIII.1 Một số thuộc tính
- Picture: Chỉ định đường dẫn đến tệp tin hình ảnh cần hiển thị, ta có thể chọn hình ảnh vào thời điểm thiết kế chương trình hoặc bằng cách gọi hàm LoadPicture:
Ví dụ: Picture1.Picture = LoadPicture(“D:\Picture\Sample.jpg”), để xóa nội dung hình ảnh trong PictureBox ta dùng lệnh: Picture1.Picture = LoadPicture()