• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Chèn item vào vị trí bất kỳ trong Listbox, Combobox

Các thủ thuật liên quan đến việc xử lý ứng dụng, biểu mẫu và control
Hình đại diện của người dùng
NoBi
Quản trị
Quản trị
Bài viết: 952
Ngày tham gia: T.Ba 18/03/2008 1:22 pm
Đến từ: Sài Gòn
Has thanked: 50 time
Been thanked: 66 time
Liên hệ:

Chèn item vào vị trí bất kỳ trong Listbox, Combobox

Gửi bàigửi bởi NoBi » T.Hai 09/03/2009 2:43 pm

Thủ thuật: Chèn item vào vị trí bất kỳ trong Listbox, Combobox
Tác giả: Sưu tầm
Mô tả: Chèn item vào vị trí bất kỳ trong Listbox và Combobox


Mã: Chọn hết

  1. Sub InsList(LB As Variant, ItemS As String, Pos As Integer)
  2. 'Code by I.M.B.F
  3. Dim i As Integer
  4. Dim j As Integer
  5. Dim k As Integer
  6. Dim Item() As String
  7.     If (Pos < 0) Or (Pos > LB.ListCount - 1) Then Exit Sub
  8.     i = LB.ListCount - 1
  9.     k = 0
  10.     For j = 0 To i
  11.         ReDim Preserve Item(k)
  12.         If j = Pos Then
  13.             Item(k) = ItemS
  14.             ReDim Preserve Item(k + 1)
  15.             Item(k + 1) = LB.List(j)
  16.             k = k + 1
  17.         Else
  18.             Item(k) = LB.List(j)
  19.         End If
  20.         k = k + 1
  21.     Next j
  22.     LB.Clear
  23.     For j = 0 To k - 1
  24.         LB.AddItem Item(j)
  25.     Next
  26. End Sub
  27.  
  28. 'Listbox = List1 ; Combobox = Combo1
  29. Private Sub Command1_Click()
  30.     InsList List1, "HEHE", 19   'Vào vị trí thứ 19
  31.     InsList Combo1, "KEKE", 4   'Vào vị trí thứ 4
  32. End Sub


:>

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4760
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 515 time

Re: Chèn item vào vị trí bất kỳ trong Listbox, Combobox

Gửi bàigửi bởi truongphu » T.Hai 09/03/2009 9:49 pm

NoBi chắc thiếu thời gian...xem lại

A- Muốn thấy code hoạt động, ta phải thêm ở Form_Load đổ đầy List1 và ComBo1
và đối số khi gọi sub InsList phải là số dương trong câu:

Mã: Chọn hết

  1. InsList Combo1, "KEKE", -4


Code sửa lại như sau:

Mã: Chọn hết

  1. Private Sub Command1_Click()
  2.     InsList List1, "HEHE", 7
  3.     InsList Combo1, "KEKE", 5
  4. End Sub
  5.  
  6. Private Sub Form_Load()
  7. For i = 1 To 10
  8. List1.AddItem i
  9. Combo1.AddItem i
  10. Next
  11. End Sub


B- Tuy thế, ta có thể thực hiện thao tác trên một cách... rất bình thường với 1 câu code :D

Mã: Chọn hết

  1. Private Sub Command2_Click()
  2. ' Code by truongphu   <---- Ghê chu'a ?
  3. 'List1.RemoveItem (6) <- Muô'n thay thê' thì cho hoat Ðông câu nâ`y.
  4. List1.AddItem "hêhê", 6
  5. 'Combo1.RemoveItem (6)
  6. Combo1.AddItem "kaka", 6
  7. End Sub


Topic evaluate: (*) (*) (*) (*) (*) (*)
Thanks truongphu for your sharing!
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4760
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 515 time

Re: Chèn item vào vị trí bất kỳ trong Listbox, Combobox

Gửi bàigửi bởi truongphu » T.Ba 10/03/2009 8:07 am

Công bằng mà nói thì trước giờ ai dùng ListBox đều chỉ chú ý đến Add cái 'Item' chứ không ai chú ý đến 'Index', kể cả thao tác Remove.
Tôi cũng thế! trước giờ khi viết code 'Ngẫu nhiên không lập lại' đều dùng Collection hay Dictionary chứ chưa bao giờ dùng cái ListBox đơn giản nầy.
Sau đây là code Ngẫu nhiên không lập lại 20 số tự nhiên đầu tiên dùng ListBox:
Cần List1 và Command1

Mã: Chọn hết

  1. Private Sub Command1_Click()
  2. List1.Clear
  3.     For i = 0 To 19
  4.         List1.AddItem i
  5.     Next
  6. Randomize
  7.     For i = 0 To 19
  8.         j = Int(Rnd * (List1.ListCount - i))
  9.             If j = -1 Then j = 0
  10.         a = List1.List(j)
  11.         List1.RemoveItem j
  12.         List1.AddItem a
  13.     Next
  14. End Sub
Sửa lần cuối bởi truongphu vào ngày T.Ba 10/03/2009 11:24 am với 1 lần sửa.
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
Kasper
Guru
Guru
Bài viết: 1062
Ngày tham gia: T.Sáu 16/05/2008 10:54 am
Has thanked: 2 time
Been thanked: 76 time
Liên hệ:

Re: Chèn item vào vị trí bất kỳ trong Listbox, Combobox

Gửi bàigửi bởi Kasper » T.Ba 10/03/2009 8:37 am

Chức năng này đã được hỗ trợ trong AddItem của Combobox và ListBox, NoBi làm phức tạp quá. :D
Lành tợ tòng, ác tợ hoa,
Nhà hòa muôn việc đều nên.

Hình đại diện của người dùng
NoBi
Quản trị
Quản trị
Bài viết: 952
Ngày tham gia: T.Ba 18/03/2008 1:22 pm
Đến từ: Sài Gòn
Has thanked: 50 time
Been thanked: 66 time
Liên hệ:

Re: Chèn item vào vị trí bất kỳ trong Listbox, Combobox

Gửi bàigửi bởi NoBi » T.Ba 10/03/2009 9:36 am

To truongphu: đoạn code đầy đủ của nó có khởi tạo như của chú, nhưng cháu thấy nó không có liên quan nên bỏ đi. Cái số âm đó cũng thấy luôn nhưng lúc gửi vô forum thì quên sửa. Bài viết này lấy từ forum cũ -> chúng ta đang tiến bộ. :D
Kasper đã viết:Chức năng này đã được hỗ trợ trong AddItem của Combobox và ListBox, NoBi làm phức tạp quá. :D

Anh cũng đâu có để ý, thấy người ta code um sùm như vậy tưởng vấn đề này khó. Ai dè bị advance "dzịnh". :))
:>

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4760
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 515 time

Đọc giá trị trong từng hàng của List view

Gửi bàigửi bởi truongphu » T.Sáu 13/03/2009 10:37 am

gửi bởi DoMinhTho » T.Bảy 07/03/2009 12:22 am
Có ai biết đọc từng giá trị trong listview ko?


Mã: Chọn hết

  1. Private Sub Command2_Click()
  2. Dim a$
  3. For i = 1 To ListView1.ListItems.Count
  4. a = a & ListView1.ListItems.Item(i) & vbCrLf
  5. Next
  6. MsgBox a
  7. End Sub


ListView load.rar

gửi bởi DoMinhTho » T.Bảy 07/03/2009 6:32 pm
Vậy nếu trong ListBox thì sao bác truongphu?


Mã: Chọn hết

  1. Private Sub Command1_Click()
  2. For i = 0 To List1.ListCount - 1
  3. a = a & List1.List(i) & vbCrLf
  4. Next
  5. MsgBox a
  6. End Sub
  7.  
  8. Private Sub Form_Load()
  9. For i = 1 To 5
  10. List1.AddItem "a" & i
  11. Next
  12. List1.ListIndex = 0
  13. End Sub


listBox.rar
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh


Quay về “[VB] Ứng dụng - Form và Control”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.0 khách