Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net listview的新实例混乱,请解释_Vb.net - Fatal编程技术网

Vb.net listview的新实例混乱,请解释

Vb.net listview的新实例混乱,请解释,vb.net,Vb.net,大家好,我是一个新的VB.NET学生。我第一次使用listview对象。我找到了一些代码来完成这项工作。基本上我想在第二列和第一列中添加信息。这段代码工作得很好,但我很难理解它为什么工作。谁能给我解释一下吗 我不明白为什么需要dim itm作为新的listview。为什么我不能只做listview.subitems.add。。。我知道这里没有命令,但为什么?为什么我需要创建listview的新实例来填充第二列 Private Sub btnAddItem_Click(ByVal sender A

大家好,我是一个新的VB.NET学生。我第一次使用listview对象。我找到了一些代码来完成这项工作。基本上我想在第二列和第一列中添加信息。这段代码工作得很好,但我很难理解它为什么工作。谁能给我解释一下吗

我不明白为什么需要dim itm作为新的listview。为什么我不能只做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

我不明白为什么需要dim itm as new listview
不是,您正在创建一个新的
ListViewItem
以添加到LV

ListView包含对象—ListViewItems、Group和Columns,最后两个控件控制显示方式。它是包含子项的
列表视图项
(LV.Items是
列表视图项
的集合,而子项是
列表视图项.列表视图子项
的集合)

为什么我不能只做listview.subitems.add
,因为LV不知道要将新子项与哪个项目关联(即在哪个行上显示它)

这将动态创建一个新的子项。如果您想设置的不仅仅是文本,您可以引用
ListViewItemSubItem
来设置其他属性(前景色、名称、字体、标记…)


需要知道的重要一点是,它不是网格-您可以轻松编辑标签/项目文本,但不能编辑子项目文本(内联)。查看资源管理器中使用的示例,而不是网格-您可以编辑文件名(==项),但不能编辑大小、日期等(==子项)

Listview.items.add(…).SubItems.add(…).SubItems.add(…)

您不理解,因为代码错误。删除“新”。并删除该评论。再想想ListView和ListViewItem之间的区别。我想我想弄清楚或更好地理解的是,为什么不能像添加listbox一样将项目添加到ListView?我理解listview与listviewitem的区别,但为什么我可以使用listbox.item.add(“”),但不能使用listview.item.add和或listview.subitems.add。简短的回答是因为它不是一个简单的listbox。按照您的方式,LV将不知道显示新子项的“行”。子项将显示为给定ListViewItem(详细信息视图)的列,因此子项将添加到ListViewItems(而且,每个项不必具有相同数量的子项!)。将第三列或第四列添加到LV的正确语法是什么?以及如何在这些列中添加特定的数据?只需添加3或4个子项-您不会添加到特定的“列”(列只是它的显示方式)。因此,您需要添加3或4个子项-如果没有3,则无法添加到第4列,请按您希望显示的顺序添加它们。要访问它们:
myLV.Items(X).SubItems(3).Text=“foo”
其中X是行/项的索引。或者:
myLV.SelectedItems(0).子项(4).Text=“Bar”
谢谢@puropoix我感谢您的时间。
itm.SubItems.Add(txtInput.Text)