2013-12-08 87 views
0

大家好我是一個相當新的VB.NET學生。我正在第一次使用listview對象。我發現了一些代碼來使這項工作。基本上我想添加信息到第二列和第一列。這段代碼工作正常,但我很難理解它爲什麼起作用。有人可以向我解釋嗎?listview混淆的新例子請詳細解釋

我不明白爲什麼昏暗的IT作爲新的列表視圖是必要的。爲什麼我不能只做listview.subitems.add ...我知道這沒有命令,但爲什麼?爲什麼我需要創建一個新的listview實例來填充第二列。

Private Sub btnAddItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddItem.Click 
    Dim itm As New ListViewItem 'Add items to listbox 
    itm = lstData.Items.Add(txtInput.Text) 'Add data from txtbox 
    itm.SubItems.Add(txtInput.Text) ' Add data from txtbox 
End Sub 
+1

你不明白,因爲代碼是錯誤的。刪除「新」。並刪除該評論。想一想ListView和ListViewItem之間的區別。 –

回答

1

I don't understand why the dim itm as new listview is needed它不是,你要創建一個新的ListViewItem添加到LV。

ListView包含對象 - ListViewItems,組和列與最後2控制如何顯示事情。它是包含SubItemsListViewItem(LV.Items是ListViewItems的集合,而子項是ListViewItem.ListViewSubItem的集合。)

Why can I not just do listview.subitems.add因爲LV根本不知道哪個項目到新的子項用(即該行關聯顯示它)。

itm.SubItems.Add(txtInput.Text) 

這創建了一個新的子項目。如果你想設置的不僅僅是文本,你可以設置一個ListViewItemSubItem來設置其他屬性(ForeColor,Name,Font,Tag ...)

重要的是要知道它不是一個網格 - 你可以輕鬆編輯標籤/項目文本,但不能編輯子項目(內嵌)。而不是一個網格,看看在使用的例子的資源管理器 - 你可以編輯文件名(==項目),但不是大小,日期等等等等(== SubItems)

+0

我想我想弄清楚或更好理解的是爲什麼你不能像列表框一樣添加項目到列表視圖?我理解listview與listviewitem,但爲什麼我可以listbox.item.add(「」),但不能listview.item.add和或listview.subitems.add –

+0

簡短的答案是因爲它不是一個簡單的ListBox。你的方式,LV不知道什麼「行」來顯示新的子項目。 SubItems顯示爲給定ListViewItem(Details View)的列,所以將subs添加到ListViewItems中(同樣,您不必爲每個項目具有相同數量的subs!)。 – Plutonix

+0

將第3或第4列添加到LV的正確語法是什麼?以及如何在這些列中專門添加數據? –

0

Listview.items.add (...)。subitems.add(...)。subitems.add(...)