• Thứ Tư, 23/11/2005 08:33 (GMT+7)

    Câu hỏi :
    1. Lập trình VB, dùng 2 Listview để hiển thị dữ liệu, khi con trỏ trong ListView1 đang ở mẩu tin có Maso=AA123, khi nhấn vào CommandButton1 thì hiện ListView2. Xin hỏi làm sao để ListView2 hiện ra với con trỏ ở vị trí mẩu tin có Maso=AA123 ?
    2. Làm sao để tạo CommandButton có hình tròn?

    Trả lời :

    1. ListView là 1 ActiveX Control trong thư viện 'Microsoft Windows Common Control', nó cho phép tạo các bảng dữ liệu. Để giải quyết yêu cầu của bạn, hãy tạo hàm xử lý sự kiện ấn chuột vào button CommandButton1 tên là Command1_Click(), trong hàm này, bạn sẽ xác định chỉ số hàng chứa mẫu tin được chọn, đọc nội dung của cell 'Maso' (giả sử lúc này =AA123), duyệt tìm trong cột 'Maso' của ListView2 xem có cell nào có giá trị =AA123, nếu có thiết lập trạng thái chọn cho hàng chứa mẫu tin tương ứng. Đoạn code VB cụ thể của hàm này như sau:

    Private Sub Command1_Click()

    Dim i As Integer

    Dim txt As String

    ‘ tìm chỉ số hàng được chọn trong ListView1

    i = ListView1.SelectedItem.Index

    ‘ tìm nội dung của cell 'Maso' trong hàng được chọn

    txt = ListView1.ListItems(i).ListSubItems('Maso').Text

    ‘ duyệt tìm hàng chứa thông tin cần thiết trong ListView2

    For i = 1 To ListView2.ListItems.Count

    If txt = ListView2.ListItems(i).ListSubItems('Maso').Text Then

    ‘cho hiển thị ListView2

    ListView2.Visible = True

    ‘focus về ListView2

    ListView2.SetFocus

    ‘đánh dấu chọn hàng mong muốn

    ListView2.ListItems(i).Selected = True

    Exit For

    End If

    Next

    End Sub

    2. Nếu muốn có button hình tròn hay hình bất kỳ, bạn phải tự xây dựng lấy vì đối tượng button sẵn có của Microsoft chỉ có dạng hình chữ nhật. Một trong các phương pháp xây dựng button có hình dạng bất kỳ là tạo mới 1 ActiveX Control với hình dạng mong muốn và hỗ trợ ít nhất 1 hàm Click(). Qui trình cụ thể để xây dựng 1 ActiveX Control bằng VB hay VC++ được trình bày trong CD MSDN của Microsoft.

    Chuyên mục: Lập trình