Xóa hàng trong ListView??

Liên hệ QC

Nguyễn Duy Tuân

Nghị Hách
Thành viên danh dự
Tham gia
13/6/06
Bài viết
4,768
Được thích
10,281
Giới tính
Nam
Nghề nghiệp
Giáo viên, CEO tại Bluesofts
ontopoftheworld đã viết:
Vậy trong trường hợp muốn chỉnh sửa record như trong listbox thì như thế nào anh Tuân.?
Cám ơn anh nhiều.

Để sửa Item thì cần viết code cho hai sự kiện như sau:

Private Sub ListView1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 113 Then 'F2
ListView1.StartLabelEdit
End If
End Sub

Private Sub ListView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
ListView1.StartLabelEdit
End Sub

Listview chỉ cho phép sửa trên ListItem còn SubItems không được (Nếu view ở chế độ Report thì chỉ sửa được ở cột đầu tiên).
 
ontopoftheworld đã viết:
Vậy trong trường hợp muốn chỉnh sửa record như trong listbox thì như thế nào anh Tuân.?
Cám ơn anh nhiều.

Để sửa Item thì cần viết code cho hai sự kiện như sau:

Mã:
Private Sub ListView1_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 113 Then [COLOR="Green"]'F2[/COLOR]
        ListView1.StartLabelEdit
    End If
End Sub

Private Sub ListView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
    ListView1.StartLabelEdit
End Sub

Listview chỉ cho phép sửa trên ListItem còn SubItems không được (Nếu view ở chế độ Report thì chỉ sửa được ở cột đầu tiên).
 
Upvote 0
TuanVNUNI đã viết:
Như thế này:
Mã:
Private Sub RemoveItem_Click()
    If Not ListView1.SelectedItem Is Nothing Then
        ListView1.ListItems.Remove (ListView1.SelectedItem.Index)
    End If
End Sub
Rất cảm ơn bác, tuy nhiên nếu muốn xóa nhiều hàng (Khi nhiều hàng cùng được chọn) thì phải làm sao nhỉ ???

Thân!
 
Upvote 0
Mr Okebab đã viết:
Rất cảm ơn bác, tuy nhiên nếu muốn xóa nhiều hàng (Khi nhiều hàng cùng được chọn) thì phải làm sao nhỉ ???

Thân!

Vậy dùng Do While..Loop như thế này:

Mã:
Private Sub RemoveItem_Click()
    
Dim n, i
n = ListView1.ListItems.Count
i = 1
Do While i <= n
    If ListView1.ListItems(i).Selected Then
        ListView1.ListItems.Remove (i)
        n = ListView1.ListItems.Count
        i = i - 1
    End If
i = i + 1
Loop

End Sub
 
Upvote 0
Không hiểu sao bài viết sau lại được đặt lên trước nhỉ?
 
Upvote 0
Listview thật là mạnh mẽ, đến mức không ngờ (so với những người như mình)
Chính vì thế các điều khiển của nó cũng phức tạp hơn Listbox nhiều.

Mình muốn xóa đi một (hay nhiều) hàng đang được chọn trong Listview ?? Code như thế nào nhỉ ??? (Dĩ nhiên các hàng dưới sẽ dồn lên)

Cảm ơn thật nhiều!!

Thân!
 
Upvote 0
Như thế này:
Mã:
Private Sub RemoveItem_Click()
    If Not ListView1.SelectedItem Is Nothing Then
        ListView1.ListItems.Remove (ListView1.SelectedItem.Index)
    End If
End Sub
 
Upvote 0
TuanVNUNI đã viết:
Như thế này:
Mã:
Private Sub RemoveItem_Click()
    If Not ListView1.SelectedItem Is Nothing Then
        ListView1.ListItems.Remove (ListView1.SelectedItem.Index)
    End If
End Sub
Vậy trong trường hợp muốn chỉnh sửa record như trong listbox thì như thế nào anh Tuân.?
Cám ơn anh nhiều.
 
Upvote 0
TuanVNUNI đã viết:
Không hiểu sao bài viết sau lại được đặt lên trước nhỉ?
Cho nó gọn lại :
PHP:
Private Sub RemoveItem_Click()
    On Error Resume Next
    Dim i As Integer
    For i = ListView1.ListItems.Count To 1 Step -1
        If ListView1.ListItems(i).Selected Then ListView1.ListItems.Remove (i)
    Next
End Sub


Các bài viết chạy lung tung bác ạ. Hình như Admin dang chỉnh sửa cái gì đó. híc híc
Cảm ơn bác nhiều!

Thân!
 
Upvote 0
To TuanVNUNI

Anh cho em hỏi vấn đề này
- Em có một bảng dữ liệu ở MS Access (table1) được định dạng font là Time New Romand. Khi chuyển dữ liệu này lên Listview thì lại không hiện đúng font chữ mặc định (Listview đã định dạng font là Time New Romand). Vậy muốn Listview hiện đúng định dang font Time New Romand thì phải làm thế nào
- Trong bản Table1 trên có Fiels(2) chứa dữ liệu là Number. Khi đưa sang Listview em muốn định dạng phân cách cho dữ liệu dạng Number thì làm thế nào (Ví dụ định dạng như: 1,123,456.45)

Cảm ơn anh trước nhé
 
Upvote 0
anhthuan đã viết:
To TuanVNUNI

Anh cho em hỏi vấn đề này
- Em có một bảng dữ liệu ở MS Access (table1) được định dạng font là Time New Romand. Khi chuyển dữ liệu này lên Listview thì lại không hiện đúng font chữ mặc định (Listview đã định dạng font là Time New Romand). Vậy muốn Listview hiện đúng định dang font Time New Romand thì phải làm thế nào
- Trong bản Table1 trên có Fiels(2) chứa dữ liệu là Number. Khi đưa sang Listview em muốn định dạng phân cách cho dữ liệu dạng Number thì làm thế nào (Ví dụ định dạng như: 1,123,456.45)

Cảm ơn anh trước nhé
Câu hỏi 1 : Bác theo dõi ở đây nhé

http://www.giaiphapexcel.com/forum/showthread.php?p=49904#post49904

Câu hỏi 2 :
PHP:
'''''' Nhap vao cot 3
LV.ListItems.Add().SubItems(2) = Format(123456,"#,##0.00")
Thân!
 
Upvote 0
To Mr Okebab

Có một vấn đề này nữa bạn giúp mình nhé
Để tính tổng (sum) của một cột trong listview thì làm thế nào? Mình loay hoay mãi mà không được.

Thanks,
 
Upvote 0
anhthuan đã viết:
To Mr Okebab

Có một vấn đề này nữa bạn giúp mình nhé
Để tính tổng (sum) của một cột trong listview thì làm thế nào? Mình loay hoay mãi mà không được.

Thanks,
Tính tổng ở cột 3

PHP:
Private Sub Tong_Click()
    On Error Resume Next
    Dim i As Integer, Tong As Double
    For i = 1 To LV1.ListItems.Count
        Tong = Tong + CDbl(LV1.ListItems(i).SubItems(2))
    Next
End Sub
Thân!

Bạn có thể xây dựng thành 1 Function với 2 tham số là TenLVThứ tự cột

Thân!
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom