在listview中添加按钮作为子项VB.NET

时间:2016-11-24 08:03:13

标签: vb.net

美好的一天。我在listview中遇到了这个问题。我想在listview中添加每个相应数据的控制按钮。我的意思是每个有数据的行,名为“Update”的控制按钮也会显示在listview的最后一列。下面的代码不起作用,我不知道如何解决这个问题。

    Dim li As ListViewItem
    Dim dt As New DataTable
    Dim da As SqlDataAdapter

    connect()
    Dim sql As String = "SELECT * FROM tbl_Data"
    da = New SqlDataAdapter(sql, cn)
    da.Fill(dt)
    lv.Items.Clear()
    For i = 0 To dt.Rows.Count - 1
        li = lv.Items.Add(dt.Rows(i).ItemArray(0).ToString)
        li.SubItems.Add(dt.Rows(i).ItemArray(1).ToString)
        li.SubItems.Add(dt.Rows(i).ItemArray(2).ToString)
        li.SubItems.Add(dt.Rows(i).ItemArray(3).ToString)
        li.SubItems.Add(dt.Rows(i).ItemArray(4).ToString)
        li.SubItems.Add(dt.Rows(i).ItemArray(5).ToString)
        li.SubItems.Add(dt.Rows(i).ItemArray(6).ToString)
        li.SubItems.Add(dt.Rows(i).ItemArray(7).ToString)

    Next

    Dim b = New Button
    b.Name = "update"
    b.Text = "UPDATE"
    lv.Controls.Add(b)

1 个答案:

答案 0 :(得分:0)

您可以创建这样的自定义类:

Public Class CustomItem
    Inherits ListViewItem

    Public customButton As Button

    Public Sub New(ByVal buttonText As String, ByRef listView As ListView)
        Me.Text = buttonText
        listView.Items.Add(Me)
        customButton = New Button
        customButton.Left = Me.GetBounds(ItemBoundsPortion.Entire).Left
        customButton.Left = Me.GetBounds(ItemBoundsPortion.Entire).Left
        customButton.Width = Me.GetBounds(ItemBoundsPortion.Entire).Width
        customButton.Text = buttonText
        listView.Controls.Add(customButton)
    End Sub

End Class

然后将新的CustomItem插入ListView,如下所示:

Dim item As New CustomItem("Update", ListView1)

这是一个开始。它没有实现许多功能,但您可以添加它。