نوشته شده توسط
Hossis
ممنون
ولی من میخواهم در کنترلهای معمولی مثل جعبه لیست (ListBox) یا لیست نمایش(ListView) این مرتب سازی رو انجام بدم.
این هم راه حل منتها قصدم ازاین راه حل بیشتر اینه که با آورلود کردن آشنا بشین (مربوط به اون تاپیک دیگتون میشه بیشتر)
فرض می گیریم که طبق گفته ی شما احتیاج به مرتب سازی لیست باکس و لیست ویو دارین :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Sort_Control_List(ListBox1, SortType.Ascendant)
Sort_Control_List(ListView1, SortType.descendant)
End Sub
Private Enum SortType
Ascendant
descendant
End Enum
Private Overloads Sub Sort_Control_List(ByRef Listbox_control As ListBox, ByVal Sort_Type As SortType)
Dim temp As String
If Sort_Type = SortType.Ascendant Then
For i = 0 To Listbox_control.Items.Count - 1
For j = i To Listbox_control.Items.Count - 1
If Val(Listbox_control.Items(i).ToString) >= Val(Listbox_control.Items(j).ToString) Then
temp = Listbox_control.Items(i).ToString
Listbox_control.Items(i) = Listbox_control.Items(j)
Listbox_control.Items(j) = temp
End If
Next
Next
Else
For i = 0 To Listbox_control.Items.Count - 1
For j = i To Listbox_control.Items.Count - 1
If Val(Listbox_control.Items(i).ToString) <= Val(Listbox_control.Items(j).ToString) Then
temp = Listbox_control.Items(i).ToString
Listbox_control.Items(i) = Listbox_control.Items(j)
Listbox_control.Items(j) = temp
End If
Next
Next
End If
End Sub
Private Overloads Sub Sort_Control_List(ByRef listview_control As ListView, ByVal Sort_Type As SortType)
Dim temp As String
If Sort_Type = SortType.Ascendant Then
For i = 0 To listview_control.Items.Count - 1
For j = i To listview_control.Items.Count - 1
If Val(listview_control.Items(i).Text) >= Val(listview_control.Items(j).Text) Then
temp = listview_control.Items(i).Text
listview_control.Items(i).Text = listview_control.Items(j).Text
listview_control.Items(j).Text = temp
End If
Next
Next
Else
For i = 0 To listview_control.Items.Count - 1
For j = i To listview_control.Items.Count - 1
If Val(listview_control.Items(i).Text) <= Val(listview_control.Items(j).Text) Then
temp = listview_control.Items(i).Text
listview_control.Items(i).Text = listview_control.Items(j).Text
listview_control.Items(j).Text = temp
End If
Next
Next
End If
End Sub