2016-11-24 121 views
-4

美好的一天。我在listview中有這個問題。我想在每個相應的數據列表視圖中添加控制按鈕。我的意思是每行有數據名爲「Update」的控制按鈕也會顯示在列表視圖的最後一列。下面的代碼不起作用,我沒有任何想法如何解決這個問題。在listview中添加按鈕作爲子項VB.NET

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) 
+0

這可能有幫助。 [將按鈕添加到WinForms的ListView中](http://stackoverflow.com/questions/456063/adding-button-into-a-listview-in-winforms) – conquistador

+2

對於數據庫應用程序來說,ListView是不好的選擇。你不僅需要創建每一行和每一列,而且一切都是字符串。使用DataGridView更容易**和**它已經有一個按鈕列類型 – Plutonix

回答

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 

然後插入一個新CustomItemListView這樣的:

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

這是一個開始。有很多它沒有實現的功能,但你可以添加。

+0

現在我可以在列表視圖中顯示按鈕,但我希​​望這個按鈕顯示爲子項目。 –