C# 在vb.net中对列表框项进行排序而不丢失索引跟踪

C# 在vb.net中对列表框项进行排序而不丢失索引跟踪,c#,vb.net,sorting,listbox,C#,Vb.net,Sorting,Listbox,我有这个: 我正在尝试按ID(listbox1)或类型(listbox2)或客户机(listbox3)对列表框进行排序 因此,我尝试对其中一个列表框进行如下排序: Public Sub SortListBox(ByVal listBox As ListBox) Dim TempList1 As New List(Of String) Dim i As Integer 'For Each LI In listBox.Items For i = 0 To listBox.Items.Count -

我有这个:

我正在尝试按ID(listbox1)或类型(listbox2)或客户机(listbox3)对列表框进行排序

因此,我尝试对其中一个列表框进行如下排序:

Public Sub SortListBox(ByVal listBox As ListBox)
Dim TempList1 As New List(Of String)
Dim i As Integer
'For Each LI In listBox.Items
For i = 0 To listBox.Items.Count - 1
    TempList1.Add(listBox.Items(i))
Next
TempList1.Sort()
listBox.DataSource = TempList1
End Sub
Private Sub Label25_Click(sender As Object, e As EventArgs) Handles Label25.Click
    SortListBox(ListBox2)
End Sub
然后我从laber_click事件调用此sub,如下所示:

Public Sub SortListBox(ByVal listBox As ListBox)
Dim TempList1 As New List(Of String)
Dim i As Integer
'For Each LI In listBox.Items
For i = 0 To listBox.Items.Count - 1
    TempList1.Add(listBox.Items(i))
Next
TempList1.Sort()
listBox.DataSource = TempList1
End Sub
Private Sub Label25_Click(sender As Object, e As EventArgs) Handles Label25.Click
    SortListBox(ListBox2)
End Sub
问题是另一个列表框不再有意义,因为id已更改,并且数据不匹配

因此,我的问题是:如何像在excel中那样对其进行排序,将已排序的项扩展到其他列表框

希望你能理解。
谢谢大家!

使用三个不同的列表框进行此类操作并不是显示所有数据的好方法,而且效率也不高。我建议使用具有多列的
ListView


MSDN:

为每个控件使用相同的数据源和列表(T)和不同的
DisplayMember
。请阅读并采取以下措施:在这方面,多栏列表不是比
列表框
更好吗?