|
|
|
|
|
|
Bạn hãy click vào tên Diễn đàn con (phía trên) nếu muốn gửi Chủ đề mới
hoặc cuộn xuống cuối trang để trả lời cho Chủ đề này.
|
|
| Tác
giả |
Nội dung |
lonelywind1982 FITHOU_Staff  Ngày gia nhập: 11/08/2004 - 11:40:07 Số bài gửi: 400
Offline |
Điều khiển Listbox Ngày gửi : 16/10/2006 lúc 09:21:01 - Lượt xem: 1564
|
| Quay về đầu |
|
|
 |
lonelywind1982 FITHOU_Staff  Ngày gia nhập: 11/08/2004 - 11:40:07 Số bài gửi: 400
Offline |
Ngày gửi : 16/10/2006 lúc 09:37:32 Properties – Thuộc tính
ItemDataTập hợp các giá trị tương ứng với các mục trong ListBox.
ListGiá trị Text của các mục trong ListBox.
ListCountSố lượng các mục của ListBox.
ListIndexChỉ số của mục được chọn trong ListBox. Nếu không có mục nào được chọn thì có giá trị -1. Nếu bạn có 3 mục trong Listbox thì các mục được đánh số từ 0-2 và tất nhiên mục đầu tiên sẽ có giá trị là 0, nếu bạn chọn mục thứ 2 thì ListIndex sẽ là 1.
NewIndexChỉ số của mục mới nhất được thêm vào Listbox.
StyleThuộc tính thiết lập dạng hiển thị của Listbox đã được mô tả ở phần trên.
TextGiá trị Text của mục được chọn tương ứng trong ListBox.
MultiSelectThuộc tính thiết lập có cho phép người sử dụng lựa chọn nhiều mục, tuy nhiên thì sự phức tạp trong việc xác định mục nào được chọn lại tăng lên đáng kể. Chẳng hạn nội dung của Text khó xác định được vì nó sẽ lưu giá trị của mục được chọn cuối cùng và đương nhiên ListIndex cũng vậy, nó là chỉ số của mục cuối được chọn.
SelectedThuộc tính cho biết mục với Index cung cấp có được chọn hay không. Thường được sử dụng khi thuộc tính MultiSelect thiết lập khác None.
ItemData / NewIndex
ItemData là giá trị ẩn cho mỗi một mục trong
ListBox.
ItemData có thể sử dụng để lưu giá trị Khóa như PK_iCustomerID trong khi tên khách hàng sẽ được hiển thị dạng Text trong ListBox như ví dụ bên.
Bạn không thể dựa vài ListIndex để biết được tên khách hàng nào được chọn, trừ khi danh sách được sắp xếp.
NewIndex là chỉ số của mục mới nhất đang được thêm vào ListBox.
lstCustomer.AddItem "Nguyen Van Tuan"
lstCustomer.ItemData(cboBox.NewIndex) = 1
lstCustomer.AddItem "Ha Van Toan"
lstCustomer.ItemData(lstCustomer.NewIndex) = 2
lstCustomer.AddItem "Nguyen Hoai Nam"
lstCustomer.ItemData(lstCustomer.NewIndex) = 3
lstCustomer.AddItem "Truong Thi My Tam"
lstCustomer.ItemData(lstCustomer.NewIndex) = 4
MultiSelect
0-noneListbox dạng thông thường. Cho phép chọn từng mục, bạn phải thiết lập thuộc tính này là 0-none khi Style là Checkbox.
1-SimpleBạn sử dụng tổ hợp Ctrl+trái chuột để lựa chọn các mục có thể không liên kề nhau, hoặc các phím mũi tên lên xuống và space để chọn.
2-ExtendedBạn không thể chọn các mục liền kề nhau bằng tổ hợp Shift+Space hay các phím mũi tên với space mà chỉ có thể sử dụng trái chuột+Ctrl.
AddItem / RemoveItem / Clear
AddItem là phương thức thêm 1 mục vào Listbox. Lúc này NewIndex sẽ là Index của mục mới được thêm vào.
RemoveItem để gỡ bỏ mục khỏi danh sách. Như ví dụ ở bên gỡ bỏ mục đang được chọn trong Listbox.
Clear Xóa bỏ toàn bộ các mục.lstCustomer.AddItem "Nguyen Van Tuan"
lstCustomer.AddItem "Ha Van Toan"
lstCustomer.AddItem "Nguyen Hoai Nam"
lstCustomer.AddItem "Truong Thi My Tam"
lstCustomer.RemoveItem lstCustomer.ListIndex |
| Quay về đầu |
|
|
 |
lonelywind1982 FITHOU_Staff  Ngày gia nhập: 11/08/2004 - 11:40:07 Số bài gửi: 400
Offline |
Ngày gửi : 16/10/2006 lúc 09:42:37 Dưới đây là 1 ví dụ làm việc với Listbox với thuộc tính Style là Checkbox.
Thiết kế Form với giao diện trên bao gồm: Command Button cmdSave, cmdClose, Listbox lstCustomers, Label lblInfo.
Phương thức nạp danh sách các mục từ tệp văn bản mytext.txt. Bạn có thể soạn thảo bằng Notepad với nội dung:
Nguyen Van Tuan;True
Ha Van Toan;True
Nguyen Hoa Nam;False
Private Sub loadFromFile()
Dim i, iFilenumber As Integer
Dim sFilename, sItem As String
Dim bChecked As Boolean
Dim sSplit() As String
On Error GoTo Err_Handle:
sFilename = App.Path ' Thư mục nơi Project chạy
If Right(sFilename, 1) <> "\" Then sFilename = sFilename & "\"
sFilename = sFilename & "mylist.txt"
iFilenumber = FreeFile ' Chỉ số quản lý tệp
Open sFilename For Input As #iFilenumber
Do While Not EOF(iFilenumber)
Line Input #iFilenumber, sItem
sSplit = Split(sItem, ";") ' Tách dòng thành các phần đưa vào sSplit
lstCustomers.AddItem sSplit(0)
lstCustomers.Selected(lstCustomers.NewIndex) = sSplit(1)
Loop
Close (iFilenumber)
Exit Sub ' Nếu không có lỗi thì thoát
Err_Handle: 'Xử lý khi xảy ra lỗi.
Select Case Err.Number
Case 56
MsgBox "File not found"
End Select
Exit Sub
End Sub
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub cmdSave_Click()
Call Save2File
End Sub
Private Sub Save2File()
Dim i, iFilenumber As Integer
Dim sFilename, sItem As String
Dim bChecked As Boolean
sFilename = App.Path
If Right(sFilename, 1) <> "\" Then sFilename = sFilename & "\"
sFilename = sFilename & "mylist.txt"
iFilenumber = FreeFile
Open sFilename For Output As #iFilenumber
For i = 0 To lstCustomers.ListCount - 1
sItem = lstCustomers.List(i) & ";" & lstCustomers.Selected(i)
Print #iFilenumber, sItem
sItem = ""
Next i
Close (iFilenumber)
End Sub
Private Sub Form_Load()
loadFromFile
End Sub
Private Sub lstCustomers_ItemCheck(Item As Integer)
Dim i, iChecked As Integer
iChecked = 0
For i = 0 To lstCustomers.ListCount - 1
If lstCustomers.Selected(i) = True Then
iChecked = iChecked + 1
End If
Next i
lblInfo = "You choice " & Str(iChecked) & " items."
End Sub
Đoạn code không được ghi chú đầy đủ, nếu có gì không hiểu thì các bạn cứ hỏi nhé. Hy vọng sẽ giúp ích được cho các bạn sinh viên khóa 05. |
| Quay về đầu |
|
|
 |
|
|
|
|
|
|