在运行时在Listview中排列项目

时间:2018-04-05 16:24:43

标签: listview vb6

我有一个包含列表视图,文本框和添加按钮的表单。当我单击添加按钮时,我在文本框中键入的文本将显示到列表视图

我想在单击添加按钮后(在运行时并且不单击列标题)按字母或数字重新排列/排序。

这是我的代码:

Private Sub Add_Click ()

   Listview.listitems.add(1).text = text1.text
   Listview.listitems.item(1).subitems(1) = text2.text

End Sub

Private Sub Form_Load()

   With Listview.columnheaders
      .Add, , "Column 1"
      .Add, , "Column 2"
   End with

End sub

1 个答案:

答案 0 :(得分:1)

ListView控件具有Sorted属性,您应将其设置为True。您可以使用设计器或使用代码来实现。在这种情况下,您的Form_Load代码应该是:

Private Sub Form_Load()
    With ListView.ColumnHeaders
        .Add , , "Column 1"
        .Add , , "Column 2"
    End With

    ' This will sort by the first column
    ListView.SortKey = 0
    ' Sort in an ascending order
    ListView.SortOrder = lvwAscending
    ListView.Sorted = True
End Sub

另外,请注意,添加项目时无需指定索引,因为列表已排序。另请注意,现在添加项目的方式将始终更改第一项的子项目。如果您需要更改最近添加的项目的子项目(即,在同一行的两列中添加项目),您需要将其更改为如下所示:

Private Sub Add_Click()
    Dim newItem As ListItem
    Set newItem = ListView.ListItems.Add()
    newItem.Text = Text1.Text
    newItem.SubItems(1) = Text2.Text
End Sub